Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleX
提交
e87bb3c6
P
PaddleX
项目概览
PaddlePaddle
/
PaddleX
通知
138
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
43
列表
看板
标记
里程碑
合并请求
5
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleX
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
43
Issue
43
列表
看板
标记
里程碑
合并请求
5
合并请求
5
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e87bb3c6
编写于
5月 19, 2020
作者:
F
FlyingQianMM
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of
https://github.com/PaddlePaddle/PaddleX
into develop_qh
上级
bc6281d6
87ff04e8
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
116 addition
and
108 deletion
+116
-108
README.md
README.md
+18
-15
docs/index.rst
docs/index.rst
+7
-8
docs/tutorials/README.md
docs/tutorials/README.md
+0
-4
paddlex/cls.py
paddlex/cls.py
+1
-1
paddlex/command.py
paddlex/command.py
+14
-0
paddlex/convertor.py
paddlex/convertor.py
+13
-13
paddlex/cv/models/utils/pretrain_weights.py
paddlex/cv/models/utils/pretrain_weights.py
+37
-41
tutorials/compress/classification/cal_sensitivities_file.py
tutorials/compress/classification/cal_sensitivities_file.py
+13
-13
tutorials/compress/classification/mobilenetv2.py
tutorials/compress/classification/mobilenetv2.py
+13
-13
未找到文件。
README.md
浏览文件 @
e87bb3c6
...
@@ -12,17 +12,17 @@ PaddleX是基于飞桨核心框架、开发套件和工具组件的深度学习
...
@@ -12,17 +12,17 @@ PaddleX是基于飞桨核心框架、开发套件和工具组件的深度学习
## 特点
## 特点
-
**全流程打通**
-
**全流程打通**
-
数据准备:支持LabelMe,精灵标注等主流数据标注工具协议,同时无缝集成
[
EasyData智能数据服务平台
](
https://ai.baidu.com/easydata/
)
, 助力开发者高效获取AI开发所需高质量数据。
-
**数据准备**
:支持
[
EasyData智能数据服务平台
](
https://ai.baidu.com/easydata/
)
数据协议,通过平台便捷完成智能标注,低质数据清洗工作, 同时兼容主流标注工具协议, 助力开发者更快完成数据准备工作。
-
模型训练:基于飞桨核心框架集成
[
PaddleClas
](
https://github.com/PaddlePaddle/PaddleClas
)
,
[
PaddleDetection
](
https://github.com/PaddlePaddle/PaddleDetection
)
,
[
PaddleSeg
](
https://github.com/PaddlePaddle/PaddleSeg
)
视觉开发套件,
[
VisualDL
](
https://github.com/PaddlePaddle/VisualDL
)
可视化分析组件,高效完成模型训练。
-
**模型训练**
:集成
[
PaddleClas
](
https://github.com/PaddlePaddle/PaddleClas
)
,
[
PaddleDetection
](
https://github.com/PaddlePaddle/PaddleDetection
)
,
[
PaddleSeg
](
https://github.com/PaddlePaddle/PaddleSeg
)
视觉开发套件,丰富的高质量预训练模型,更快实现工业级模型效果。
-
多端部署:内置
[
PaddleSlim
](
https://github.com/PaddlePaddle/PaddleSlim
)
模型压缩工具和AES模型加密SDK,结合Paddle Inference和
[
Paddle Lite
](
https://github.com/PaddlePaddle/Paddle-Lite
)
便捷完成高性能且可靠的多端部署。
-
**模型调优**
:内置模型可解释性模块、
[
VisualDL
](
https://github.com/PaddlePaddle/VisualDL
)
可视化分析组件, 提供丰富的信息更好地理解模型,优化模型。
-
**多端安全部署**
:内置
[
PaddleSlim
](
https://github.com/PaddlePaddle/PaddleSlim
)
模型压缩工具和
**模型加密部署模块**
,结合Paddle Inference或
[
Paddle Lite
](
https://github.com/PaddlePaddle/Paddle-Lite
)
便捷完成高性能的多端安全部署。
-
**融合产业实践**
-
**融合产业实践**
-
精选飞桨产业实践的成熟模型结构,开放案例实践教程,加速开发者产业落地。
-
精选飞桨产业实践的成熟模型结构,开放案例实践教程,加速开发者产业落地。
-
通过
[
PaddleHub
](
https://github.com/PaddlePaddle/Paddle
)
内置丰富的飞桨高质量预训练模型,助力开发者高效实现飞桨Master模式。
-
**易用易集成**
-
**易用易集成**
-
PadldeX提供简洁易用的全流程API,几行代码即可实现上百种数据增强、模型可解释性、C++模型部署等功能
。
-
统一易用的全流程API,5步完成模型训练,10行代码实现Python/C++高性能部署
。
-
提供以PaddleX
API为核心集成的跨平台GUI界面,降低深度学习全流程应用门槛
。
-
提供以PaddleX
为核心集成的跨平台可视化工具PaddleX-GUI,快速体验飞桨深度学习全流程
。
## 安装
## 安装
...
@@ -31,7 +31,7 @@ PaddleX提供两种开发模式,满足不同场景和用户需求:
...
@@ -31,7 +31,7 @@ PaddleX提供两种开发模式,满足不同场景和用户需求:
-
**Python开发模式:**
通过Python API方式完成全流程使用或集成,该模型提供全面、灵活、开放的深度学习功能,有更高的定制化空间。
-
**Python开发模式:**
通过Python API方式完成全流程使用或集成,该模型提供全面、灵活、开放的深度学习功能,有更高的定制化空间。
-
**
GUI开发模式:**
以PaddleX API为核心集成的跨平台GUI客户端,
支持
`Python开发模式`
下的常用功能,以更低门槛的方式快速完成产业验证的模型训练。
-
**
Padlde-GUI模式:**
PaddleX-GUI
支持
`Python开发模式`
下的常用功能,以更低门槛的方式快速完成产业验证的模型训练。
开发者可根据自身需要按需选择不同的模式进行安装使用。
开发者可根据自身需要按需选择不同的模式进行安装使用。
...
@@ -48,20 +48,19 @@ PaddleX提供两种开发模式,满足不同场景和用户需求:
...
@@ -48,20 +48,19 @@ PaddleX提供两种开发模式,满足不同场景和用户需求:
pip install paddlex -i https://mirror.baidu.com/pypi/simple
pip install paddlex -i https://mirror.baidu.com/pypi/simple
```
```
###
GUI开发模式
安装
###
PaddleX-GUI
安装
进入PaddleX官网
[
下载使用
](
https://www.paddlepaddle.org.cn/paddle/paddlex
)
,申请下载绿色安装包,开箱即用。
进入PaddleX官网
[
下载使用
](
https://www.paddlepaddle.org.cn/paddle/paddlex
)
,申请下载绿色安装包,开箱即用。
GUI模式的使用教程可参考
[
PaddleX
GUI模式使用教程
](
https://paddlex.readthedocs.io/zh_CN/latest/paddlex_gui/index.html
)
Paddle-GUI的使用教程可参考
[
PaddleX-
GUI模式使用教程
](
https://paddlex.readthedocs.io/zh_CN/latest/paddlex_gui/index.html
)
## 使用文档
## 使用文档
推荐访问
[
PaddleX在线使用文档
](
https://paddlex.readthedocs.io/zh_CN/latest/index.html
)
,快速查阅读使用教程和API文档说明。
推荐访问
[
PaddleX在线使用文档
](
https://paddlex.readthedocs.io/zh_CN/latest/index.html
)
,快速查阅读使用教程和API文档说明。
-
[
10分钟快速上手
](
https://paddlex.readthedocs.io/zh_CN/latest/quick_start.html
)
-
[
10分钟快速上手使用
](
https://paddlex.readthedocs.io/zh_CN/latest/quick_start.html
)
-
[
PaddleX模型训练
](
https://paddlex.readthedocs.io/zh_CN/latest/tutorials/train/index.html#id1
)
-
[
PaddleX全流程开发教程
](
https://paddlex.readthedocs.io/zh_CN/latest/tutorials/index.html
)
-
[
PaddleX模型压缩
](
https://paddlex.readthedocs.io/zh_CN/latest/slim/index.html#id1
)
-
[
PaddleX视觉方案介绍
](
https://paddlex.readthedocs.io/zh_CN/latest/cv_solutions.html
)
-
[
PaddleX模型库
](
https://paddlex.readthedocs.io/zh_CN/latest/model_zoo.html#id1
)
-
[
PaddleX API参考文档
](
https://paddlex.readthedocs.io/zh_CN/latest/apis/index.html
)
-
[
PaddleX多端部署
](
docs/deploy.md
)
## 在线教程
## 在线教程
...
@@ -74,12 +73,16 @@ GUI模式的使用教程可参考[PaddleX GUI模式使用教程](https://paddlex
...
@@ -74,12 +73,16 @@ GUI模式的使用教程可参考[PaddleX GUI模式使用教程](https://paddlex
## 交流与反馈
## 交流与反馈
-
项目官网: https://www.paddlepaddle.org.cn/paddle/paddlex
-
项目官网: https://www.paddlepaddle.org.cn/paddle/paddlex
-
PaddleX用户
QQ
群: 1045148026 (手机QQ扫描如下二维码快速加入)
-
PaddleX用户
交流
群: 1045148026 (手机QQ扫描如下二维码快速加入)
<img
src=
"./docs/images/QQGroup.jpeg"
width=
"195"
height=
"300"
alt=
"QQGroup"
align=
"center"
/>
<img
src=
"./docs/images/QQGroup.jpeg"
width=
"195"
height=
"300"
alt=
"QQGroup"
align=
"center"
/>
## FAQ
## FAQ
## 更新日志
## 更新日志
*
2020.05.20
**`v1.0.0`**
*
初始版本发布。
## 贡献代码
## 贡献代码
...
...
docs/index.rst
浏览文件 @
e87bb3c6
...
@@ -3,19 +3,18 @@
...
@@ -3,19 +3,18 @@
PaddleX是基于飞桨核心框架、开发套件和工具组件的深度学习全流程开发工具。具备 **全流程打通** 、**融合产业实践** 、**易用易集成** 三大特点。
PaddleX是基于飞桨核心框架、开发套件和工具组件的深度学习全流程开发工具。具备 **全流程打通** 、**融合产业实践** 、**易用易集成** 三大特点。
全流程打通
全流程打通
| - **数据准备**: 支持LabelMe,精灵标注等主流数据标注工具协议,同时无缝集成 `EasyData智能数据服务平台 <https://ai.baidu.com/easydata/>`_ ,助力开发者高效获取AI开发所需高质量数据。
| - **数据准备**: 支持 `EasyData智能数据服务平台数据协议 <https://ai.baidu.com/easydata/>`_ ,通过平台便捷完成智能标注,低质数据清洗工作;同时兼容主流标注工具协议, 助力开发者更快完成数据准备工作。
| - **模型训练**: 基于飞桨核心框架集成 `PaddleClas <https://github.com/PaddlePaddle/PaddleClas>`_ ,`PaddleDetection <https://github.com/PaddlePaddle/PaddleDetection>`_ ,`PaddleSeg <https://github.com/PaddlePaddle/PaddleSeg>`_ 视觉开发套件 ,`VisualDL <https://github.com/PaddlePaddle/VisualDL>`_ 可视化分析组件,高效完成模型训练。
| - **模型训练**: 基于飞桨核心框架集成 `PaddleClas <https://github.com/PaddlePaddle/PaddleClas>`_ ,`PaddleDetection <https://github.com/PaddlePaddle/PaddleDetection>`_ ,`PaddleSeg <https://github.com/PaddlePaddle/PaddleSeg>`_ 视觉开发套件,丰富的高质量预训练模型,更快实现工业级模型训练。
| _ **多端部署**: 内置 `PaddleSlim <https://github.com/PaddlePaddle/PaddleSlim>`_ 模型压缩工具和AES模型加密SDK,结合Paddle Inference和 `Paddle Lite <https://github.com/PaddlePaddle/Paddle-Lite>`_ 便捷完成高性能且可靠的多端部署。
| - **模型调优**: 内置模型可解释性模块、`VisualDL <https://github.com/PaddlePaddle/VisualDL>`_ 可视化分析组件,提供丰富的信息更好地理解模型,优化模型。
| - **多端安全部署**: 内置 `PaddleSlim <https://github.com/PaddlePaddle/PaddleSlim>`_ 模型压缩工具和AES模型加密SDK,结合Paddle Inference和 `Paddle Lite <https://github.com/PaddlePaddle/Paddle-Lite>`_ 便捷完成高性能的多端安全部署。
融合产业实践
融合产业实践
| - 精选飞桨产业实践的成熟模型结构,开放案例实践教程,加速开发者产业落地。
| - 精选飞桨产业实践的成熟模型结构,开放案例实践教程,加速开发者产业落地。
| - 通过 `PaddleHub <https://github.com/PaddlePaddle/PaddleHub>`_ 内置丰富的飞桨高质量预训练模型,助力开发者高效实现飞桨Master模式。
易用易集成
易用易集成
| -
PadldeX提供简洁易用的全流程API,几行代码即可实现上百种数据增强、模型可解释性、C++模型部署等功能
。
| -
统一易用的全流程API,5步完成模型训练,10行代码实现Python/C++高性能部署
。
| - 提供以PaddleX
API为核心集成的跨平台GUI界面,降低深度学习全流程应用门槛
。
| - 提供以PaddleX
为核心集成的跨平台可视化开发工具PaddleX-GUI,更低门槛快速体验飞桨深度学习全流程
。
.. toctree::
.. toctree::
:maxdepth: 2
:maxdepth: 2
...
@@ -31,7 +30,7 @@ PaddleX是基于飞桨核心框架、开发套件和工具组件的深度学习
...
@@ -31,7 +30,7 @@ PaddleX是基于飞桨核心框架、开发套件和工具组件的深度学习
FAQ.md
FAQ.md
appendix/index.rst
appendix/index.rst
* PaddleX版本: v
0.1.7
* PaddleX版本: v
1.0.0
* 项目官网: http://www.paddlepaddle.org.cn/paddle/paddlex
* 项目官网: http://www.paddlepaddle.org.cn/paddle/paddlex
* 项目GitHub: https://github.com/PaddlePaddle/PaddleX/tree/develop
* 项目GitHub: https://github.com/PaddlePaddle/PaddleX/tree/develop
* 官方QQ用户群: 1045148026
* 官方QQ用户群: 1045148026
...
...
docs/tutorials/README.md
已删除
100755 → 0
浏览文件 @
bc6281d6
# PaddleX使用教程
-
[
模型训练
](
./train
)
-
[
模型裁剪
](
./compress
)
paddlex/cls.py
浏览文件 @
e87bb3c6
#
c
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
C
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# you may not use this file except in compliance with the License.
...
...
paddlex/command.py
浏览文件 @
e87bb3c6
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from
six
import
text_type
as
_text_type
from
six
import
text_type
as
_text_type
import
argparse
import
argparse
import
sys
import
sys
...
...
paddlex/convertor.py
浏览文件 @
e87bb3c6
#
c
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
C
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
#
#Licensed under the Apache License, Version 2.0 (the "License");
#
Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#
you may not use this file except in compliance with the License.
#You may obtain a copy of the License at
#
You may obtain a copy of the License at
#
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
#
#Unless required by applicable law or agreed to in writing, software
#
Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#
distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#
See the License for the specific language governing permissions and
#limitations under the License.
#
limitations under the License.
from
__future__
import
absolute_import
from
__future__
import
absolute_import
import
paddle.fluid
as
fluid
import
paddle.fluid
as
fluid
...
...
paddlex/cv/models/utils/pretrain_weights.py
浏览文件 @
e87bb3c6
import
paddlex
import
paddlex
#
import paddlehub as hub
import
paddlehub
as
hub
import
os
import
os
import
os.path
as
osp
import
os.path
as
osp
...
@@ -85,53 +85,49 @@ def get_pretrain_weights(flag, model_type, backbone, save_dir):
...
@@ -85,53 +85,49 @@ def get_pretrain_weights(flag, model_type, backbone, save_dir):
backbone
=
'DetResNet50'
backbone
=
'DetResNet50'
assert
backbone
in
image_pretrain
,
"There is not ImageNet pretrain weights for {}, you may try COCO."
.
format
(
assert
backbone
in
image_pretrain
,
"There is not ImageNet pretrain weights for {}, you may try COCO."
.
format
(
backbone
)
backbone
)
url
=
image_pretrain
[
backbone
]
#
url = image_pretrain[backbone]
fname
=
osp
.
split
(
url
)[
-
1
].
split
(
'.'
)[
0
]
#
fname = osp.split(url)[-1].split('.')[0]
paddlex
.
utils
.
download_and_decompress
(
url
,
path
=
new_save_dir
)
#
paddlex.utils.download_and_decompress(url, path=new_save_dir)
return
osp
.
join
(
new_save_dir
,
fname
)
#
return osp.join(new_save_dir, fname)
#
try:
try
:
#
hub.download(backbone, save_path=new_save_dir)
hub
.
download
(
backbone
,
save_path
=
new_save_dir
)
#
except Exception as e:
except
Exception
as
e
:
#
if isinstance(e, hub.ResourceNotFoundError):
if
isinstance
(
e
,
hub
.
ResourceNotFoundError
):
# raise Exception
(
raise
Exception
(
"Resource for backbone {} not found"
.
format
(
# "Resource for backbone {} not found".format(
backbone))
backbone
))
#
elif isinstance(e, hub.ServerConnectionError):
elif
isinstance
(
e
,
hub
.
ServerConnectionError
):
#
raise Exception(
raise
Exception
(
#
"Cannot get reource for backbone {}, please check your internet connecgtion"
"Cannot get reource for backbone {}, please check your internet connecgtion"
#
.format(backbone))
.
format
(
backbone
))
#
else:
else
:
#
raise Exception(
raise
Exception
(
#
"Unexpected error, please make sure paddlehub >= 1.6.2")
"Unexpected error, please make sure paddlehub >= 1.6.2"
)
#
return osp.join(new_save_dir, backbone)
return
osp
.
join
(
new_save_dir
,
backbone
)
elif
flag
==
'COCO'
:
elif
flag
==
'COCO'
:
new_save_dir
=
save_dir
new_save_dir
=
save_dir
if
hasattr
(
paddlex
,
'pretrain_dir'
):
if
hasattr
(
paddlex
,
'pretrain_dir'
):
new_save_dir
=
paddlex
.
pretrain_dir
new_save_dir
=
paddlex
.
pretrain_dir
url
=
coco_pretrain
[
backbone
]
url
=
coco_pretrain
[
backbone
]
fname
=
osp
.
split
(
url
)[
-
1
].
split
(
'.'
)[
0
]
fname
=
osp
.
split
(
url
)[
-
1
].
split
(
'.'
)[
0
]
paddlex
.
utils
.
download_and_decompress
(
url
,
path
=
new_save_dir
)
# paddlex.utils.download_and_decompress(url, path=new_save_dir)
return
osp
.
join
(
new_save_dir
,
fname
)
# return osp.join(new_save_dir, fname)
# new_save_dir = save_dir
assert
backbone
in
coco_pretrain
,
"There is not COCO pretrain weights for {}, you may try ImageNet."
.
format
(
# if hasattr(paddlex, 'pretrain_dir'):
backbone
)
# new_save_dir = paddlex.pretrain_dir
try
:
# assert backbone in coco_pretrain, "There is not COCO pretrain weights for {}, you may try ImageNet.".format(
hub
.
download
(
backbone
,
save_path
=
new_save_dir
)
# backbone)
except
Exception
as
e
:
# try:
if
isinstance
(
hub
.
ResourceNotFoundError
):
# hub.download(backbone, save_path=new_save_dir)
raise
Exception
(
"Resource for backbone {} not found"
.
format
(
# except Exception as e:
backbone
))
# if isinstance(hub.ResourceNotFoundError):
elif
isinstance
(
hub
.
ServerConnectionError
):
# raise Exception(
raise
Exception
(
# "Resource for backbone {} not found".format(backbone))
"Cannot get reource for backbone {}, please check your internet connecgtion"
# elif isinstance(hub.ServerConnectionError):
.
format
(
backbone
))
# raise Exception(
else
:
# "Cannot get reource for backbone {}, please check your internet connecgtion"
raise
Exception
(
# .format(backbone))
"Unexpected error, please make sure paddlehub >= 1.6.2"
)
# else:
return
osp
.
join
(
new_save_dir
,
backbone
)
# raise Exception(
# "Unexpected error, please make sure paddlehub >= 1.6.2")
# return osp.join(new_save_dir, backbone)
else
:
else
:
raise
Exception
(
raise
Exception
(
"pretrain_weights need to be defined as directory path or `IMAGENET` or 'COCO' (download pretrain weights automatically)."
"pretrain_weights need to be defined as directory path or `IMAGENET` or 'COCO' (download pretrain weights automatically)."
...
...
tutorials/compress/classification/cal_sensitivities_file.py
浏览文件 @
e87bb3c6
#
c
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
C
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
#
#Licensed under the Apache License, Version 2.0 (the "License");
#
Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#
you may not use this file except in compliance with the License.
#You may obtain a copy of the License at
#
You may obtain a copy of the License at
#
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
#
#Unless required by applicable law or agreed to in writing, software
#
Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#
distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#
See the License for the specific language governing permissions and
#limitations under the License.
#
limitations under the License.
import
argparse
import
argparse
import
os
import
os
...
...
tutorials/compress/classification/mobilenetv2.py
浏览文件 @
e87bb3c6
#
c
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
C
opyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
#
#Licensed under the Apache License, Version 2.0 (the "License");
#
Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#
you may not use this file except in compliance with the License.
#You may obtain a copy of the License at
#
You may obtain a copy of the License at
#
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
#
#Unless required by applicable law or agreed to in writing, software
#
Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#
distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#
See the License for the specific language governing permissions and
#limitations under the License.
#
limitations under the License.
import
argparse
import
argparse
import
os
import
os
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录