Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleX
提交
86e8a2e2
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看板
提交
86e8a2e2
编写于
7月 18, 2020
作者:
F
FlyingQianMM
浏览文件
操作
浏览文件
下载
差异文件
fix conflicts
上级
cce09fe4
e65505d1
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
79 addition
and
47 deletion
+79
-47
README.md
README.md
+23
-25
docs/apis/visualize.md
docs/apis/visualize.md
+2
-1
docs/data/annotation.md
docs/data/annotation.md
+3
-1
docs/deploy/export_model.md
docs/deploy/export_model.md
+2
-0
docs/gui/index.rst
docs/gui/index.rst
+32
-7
docs/train/instance_segmentation.md
docs/train/instance_segmentation.md
+1
-1
docs/train/object_detection.md
docs/train/object_detection.md
+1
-1
paddlex/__init__.py
paddlex/__init__.py
+1
-1
paddlex/cv/models/slim/prune.py
paddlex/cv/models/slim/prune.py
+8
-3
paddlex/tools/x2coco.py
paddlex/tools/x2coco.py
+5
-6
setup.py
setup.py
+1
-1
未找到文件。
README.md
浏览文件 @
86e8a2e2
...
...
@@ -18,7 +18,7 @@
### 全流程打通
-
**数据准备**
:兼容ImageNet、VOC、COCO等常用数据协议, 同时与Labelme、精灵标注助手、EasyData智能数据服务平台](https://ai.baidu.com/easydata/)等无缝衔接,全方位助力开发者更快完成数据准备工作。
-
**数据准备**
:兼容ImageNet、VOC、COCO等常用数据协议, 同时与Labelme、精灵标注助手、
[
EasyData智能数据服务平台
](
https://ai.baidu.com/easydata/
)
等无缝衔接,全方位助力开发者更快完成数据准备工作。
-
**数据预处理及增强**
:提供极简的图像预处理和增强方法--Transforms,适配imgaug图像增强库,支持上百种数据增强策略,是开发者快速缓解小样本数据训练的问题。
...
...
@@ -43,45 +43,42 @@
## 安装
PaddleX提供两种开发模式,满足不同场景和用户需求:
**PaddleX提供两种开发模式,满足用户的不同需求:**
-
**Python开发模式:**
通过Python API方式完成全流程使用或集成,该模型提供全面、灵活、开放的深度学习功能,有更高的定制化空间。
1.
**Python开发模式:**
通过简洁易懂的Python API,在兼顾功能全面性、开发灵活性、集成方便性的基础上,给开发者最流畅的深度学习开发体验。
<br>
-
**Padlde-GUI模式:**
PaddleX-GUI支持
`Python开发模式`
下的常用功能,以更低门槛的方式快速完成产业验证的模型训练。
开发者可根据自身需要按需选择不同的模式进行安装使用。
### Python开发模式安装
**前置依赖**
*
paddlepaddle >= 1.8.0
*
python >= 3.5
*
cython
*
pycocotools
**前置依赖**
> - paddlepaddle >= 1.8.0
> - python >= 3.5
> - cython
> - pycocotools
```
pip install paddlex -i https://mirror.baidu.com/pypi/simple
```
安装的相关问题参考
[
PaddleX安装
](
https://paddlex.readthedocs.io/zh_CN/develop/install.html
)
详细安装方法请参考
[
PaddleX安装
](
https://paddlex.readthedocs.io/zh_CN/develop/install.html
)
2.
**Padlde GUI模式:**
无代码开发的可视化客户端,应用Paddle API实现,使开发者快速进行产业项目验证,并为用户开发自有深度学习软件/应用提供参照。
-
前往
[
PaddleX官网
](
https://www.paddlepaddle.org.cn/paddle/paddlex
)
,申请下载Paddle X GUI一键绿色安装包。
### PaddleX-GUI安装
-
前往
[
PaddleX GUI使用教程
](
./docs/gui/how_to_use.md
)
了解PaddleX GUI使用详情。
进入PaddleX官网
[
下载使用
](
https://www.paddlepaddle.org.cn/paddle/paddlex
)
,申请下载绿色安装包,开箱即用。
Paddle-GUI的使用教程可参考
[
PaddleX-GUI模式使用教程
](
./docs/gui/how_to_use.md
)
##
使用文档
##
完整使用文档及API说明
推荐访问
[
PaddleX在线使用文档
](
https://paddlex.readthedocs.io/zh_CN/develop/index.html
)
,快速查阅读使用教程和API文档说明。
-
[
完整PaddleX在线使用文档目录
](
https://paddlex.readthedocs.io/zh_CN/develop/index.html
)
-
[
10分钟快速上手
使用
](
https://paddlex.readthedocs.io/zh_CN/develop/quick_start.html
)
-
[
10分钟快速上手
系列教程
](
https://paddlex.readthedocs.io/zh_CN/develop/quick_start.html
)
-
[
PaddleX模型训练教程集合
](
https://paddlex.readthedocs.io/zh_CN/develop/train/index.html
)
-
[
PaddleX API
参考文档
](
https://paddlex.readthedocs.io/zh_CN/develop/apis/index.html
)
-
[
PaddleX API
接口说明
](
https://paddlex.readthedocs.io/zh_CN/develop/apis/index.html
)
## 在线
教程
## 在线
项目示例
基于AIStudio平台,快速在线体验PaddleX的Python开发模式教程
。
为了使开发者更快掌握PaddleX API,我们创建了一系列完整的示例教程,您可通过AIStudio一站式开发平台,快速在线运行PaddleX的项目
。
-
[
PaddleX快速上手CV模型训练
](
https://aistudio.baidu.com/aistudio/projectdetail/450925
)
-
[
PaddleX快速上手——MobileNetV3-ssld 化妆品分类
](
https://aistudio.baidu.com/aistudio/projectdetail/450220
)
-
[
PaddleX快速上手——Faster-RCNN AI识虫
](
https://aistudio.baidu.com/aistudio/projectdetail/439888
)
-
[
PaddleX快速上手——DeepLabv3+ 视盘分割
](
https://aistudio.baidu.com/aistudio/projectdetail/440197
)
...
...
@@ -97,6 +94,7 @@ Paddle-GUI的使用教程可参考[PaddleX-GUI模式使用教程](./docs/gui/how
## 更新日志
> [历史版本及更新内容](https://paddlex.readthedocs.io/zh_CN/develop/change_log.html)
-
2020.07.13 v1.1.0
-
2020.07.12 v1.0.8
-
2020.05.20 v1.0.0
-
2020.05.17 v0.1.8
...
...
docs/apis/visualize.md
浏览文件 @
86e8a2e2
...
...
@@ -103,13 +103,14 @@ pdx.det.draw_pr_curve(gt=gt, pred_bbox=bbox, save_dir='./insect')
## paddlex.slim.visualzie
> **模型剪裁比例可视化分析**
```
paddlex.slim.visualize(model, sensitivities_file)
paddlex.slim.visualize(model, sensitivities_file
, save_dir='./'
)
```
利用此接口,可以分析在不同的
`eval_metric_loss`
参数下,模型被剪裁的比例情况。可视化结果纵轴为eval_metric_loss参数值,横轴为对应的模型被剪裁的比例。
`eval_metric_loss`
即卷积的敏感度,是指按照剪裁率将模型剪裁后模型精度的损失。
### 参数
>* **model** (paddlex.cv.models): 使用PaddleX加载的模型。
>* **sensitivities_file** (str): 模型各参数在验证集上计算得到的参数敏感度信息文件。
>* **save_dir**(str): 可视化结果保存路径,默认为当前目录
### 使用示例
> 点击下载示例中的[模型](https://bj.bcebos.com/paddlex/models/vegetables_mobilenet.tar.gz)和[sensitivities_file](https://bj.bcebos.com/paddlex/slim_prune/mobilenetv2.sensitivities)
...
...
docs/data/annotation.md
浏览文件 @
86e8a2e2
...
...
@@ -36,4 +36,6 @@ paddlex --data_conversion --source labelme --to PascalVOC --pics ./pics --annota
| --pics | 指定原图所在的目录路径 |
| --annotations | 指定标注文件所在的目录路径 |
**注意**
:精灵标注的目标检测数据可以在工具内部导出为PascalVOC格式,因此paddlex未提供精灵标注数据到PascalVOC格式的转换
**注意**
:
1.
精灵标注的目标检测数据可以在工具内部导出为PascalVOC格式,因此paddlex未提供精灵标注数据到PascalVOC格式的转换
2.
在将LabelMe数据集转换为COCO数据集时,LabelMe的图像文件名和json文件名需要一一对应,才可正确转换
docs/deploy/export_model.md
浏览文件 @
86e8a2e2
...
...
@@ -2,6 +2,8 @@
在服务端部署模型时需要将训练过程中保存的模型导出为inference格式模型,导出的inference格式模型包括
`__model__`
、
`__params__`
和
`model.yml`
三个文件,分别表示模型的网络结构、模型权重和模型的配置文件(包括数据预处理参数等)。
> **检查你的模型文件夹**,如果里面是`model.pdparams`, `model.pdmodel`和`model.yml`3个文件时,那么就需要按照下面流程进行模型导出
在安装完PaddleX后,在命令行终端使用如下命令将模型导出。可直接下载小度熊分拣模型来测试本文档的流程
[
xiaoduxiong_epoch_12.tar.gz
](
https://bj.bcebos.com/paddlex/models/xiaoduxiong_epoch_12.tar.gz
)
。
```
...
...
docs/gui/index.rst
浏览文件 @
86e8a2e2
PaddleX GUI
=======================================
PaddleX GUI是基于PaddleX
开发实现的可视化模型训练套件,让开发者免去代码开发的步骤,通过点选式地操作就可以快速完成模型的训练开发。PaddleXGUI具有 **数据集可视化分析** 、**模型参数自动推荐** 、**跨平台使用** 三大特点
。
PaddleX GUI是基于PaddleX
实现的可视化开发客户端。开发者以点选、键入的方式快速体验深度学习模型开发的全流程。不仅可以作为您提升深度学习模型开发效率的工具,更可以作为您们应用PaddleX API搭建专属的行业软件/应用的示例参照
。
数据集可视化分析
| PaddleX支持导入常见的图像分类、目标检测、实例分割和语义分割数据集,并对数据集的样本分布,标注结果进行可视化展示,数据集的情况一目了然!
PaddleX GUI 当前提供Windows,Mac,Ubuntu三种版本一键绿色安装的方式。请至[飞桨官网](https://www.paddlepaddle.org.cn/)下载您需要的版本。
模型参数自动推荐
| 根据用户的电脑配置和数据集情况,自动推荐模型训练参数,免去用户查看文档,被各种参数所烦的忧心事!
功能简介
---------------------------------------
PaddleX GUI是PaddleX API的衍生品,它在集成API功能的基础上,额外提供了可视化分析、评估等附加功能,致力于为开发者带来极致顺畅的开发体验。其拥有以下独特的功能:
跨平台使用
| PaddleX GUI完全跨平台,支持Linux、Windows和Mac三大主流系统!
- **全流程打通**
PaddleX GUI覆盖深度学习模型开发必经的**数据处理**、**超参配置**、**模型训练及优化**、**模型发布**全流程,无需开发一行代码,即可得到高性深度学习推理模型。
- **数据集智能分析**
详细的数据结构说明,并提供**数据标签自动校验**。支持**可视化数据预览**、**数据分布图表展示**、**一键数据集切分**等实用功能
- **自动超参推荐**
集成飞桨团队长时间产业实践经验,根据用户选择的模型类别、骨架网络等,提供多种针对性优化的**预训练模型**,并**提供推荐超参配置**,可**一键开启多种优化策略**
- **可视化模型评估**
集成**可视化分析工具:VisualDL**, 以线性图表的形式展示acc、lr等关键参数在训练过程中的变化趋势。提供**混淆矩阵**等实用方法,帮助快速定位问题,加速调参。模型评估报告一键导出,方便项目复盘分析。
- **模型裁剪及量化**
一键启动模型裁剪、量化,在不同阶段为开发者提供模型优化的策略,满足不同环境对模型性能的需求。
- **预训练模型管理**
可对历史训练模型进行保存及管理,未进行裁剪的模型可以保存为预训练模型,在后续任务中使用。
- **可视化模型测试**
客户端直接展示模型预测效果,无需上线即可进行效果评估
- **模型多端部署**
点选式选择模型发布平台、格式,一键导出预测模型,并匹配完善的模型预测部署说明文档,贴心助力产业端到端项目落地
.. toctree::
:maxdepth: 2
:caption: 文档目录:
download.md
how_to_use.md
faq.md
* PaddleX GUI版本: v1.0
...
...
docs/train/instance_segmentation.md
浏览文件 @
86e8a2e2
...
...
@@ -11,7 +11,7 @@ PaddleX目前提供了MaskRCNN实例分割模型结构,多种backbone模型,
| 模型(点击获取代码) | Box MMAP/Seg MMAP | 模型大小 | GPU预测速度 | Arm预测速度 | 备注 |
| :---------------- | :------- | :------- | :--------- | :--------- | :----- |
|
[
MaskRCNN-ResNet50-FPN
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/instance_segmentation/mask_rcnn_r50_fpn.py
)
| 38.7%/34.7% | 177.7MB | 160.185ms | - | 模型精度高,适用于服务端部署 |
|
[
MaskRCNN-ResNet18-FPN
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/instance_segmentation/mask_rcnn_r18_fpn.py
)
| 33.6
/30.5
| 189.1MB | - | - | 模型精度高,适用于服务端部署 |
|
[
MaskRCNN-ResNet18-FPN
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/instance_segmentation/mask_rcnn_r18_fpn.py
)
| 33.6
%/30.5%
| 189.1MB | - | - | 模型精度高,适用于服务端部署 |
|
[
MaskRCNN-HRNet-FPN
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/instance_segmentation/mask_rcnn_hrnet_fpn.py
)
| 38.7%/34.7% | 120.7MB | - | - | 模型精度高,预测速度快,适用于服务端部署 |
...
...
docs/train/object_detection.md
浏览文件 @
86e8a2e2
...
...
@@ -12,7 +12,7 @@ PaddleX目前提供了FasterRCNN和YOLOv3两种检测结构,多种backbone模
| :---------------- | :------- | :------- | :--------- | :--------- | :----- |
|
[
YOLOv3-MobileNetV1
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/yolov3_mobilenetv1.py
)
| 29.3% | 99.2MB | 15.442ms | - | 模型小,预测速度快,适用于低性能或移动端设备 |
|
[
YOLOv3-MobileNetV3
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/yolov3_mobilenetv3.py
)
| 31.6% | 100.7MB | 143.322ms | - | 模型小,移动端上预测速度有优势 |
|
[
YOLOv3-DarkNet53
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/yolov3_darknet53.py
)
| 38.9 | 249.2MB | 42.672ms | - | 模型较大,预测速度快,适用于服务端 |
|
[
YOLOv3-DarkNet53
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/yolov3_darknet53.py
)
| 38.9
%
| 249.2MB | 42.672ms | - | 模型较大,预测速度快,适用于服务端 |
|
[
FasterRCNN-ResNet50-FPN
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/faster_rcnn_r50_fpn.py
)
| 37.2% | 167.7MB | 197.715ms | - | 模型精度高,适用于服务端部署 |
|
[
FasterRCNN-ResNet18-FPN
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/faster_rcnn_r18_fpn.py
)
| 32.6% | 173.2MB | - | - | 模型精度高,适用于服务端部署 |
|
[
FasterRCNN-HRNet-FPN
](
https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/faster_rcnn_hrnet_fpn.py
)
| 36.0% | 115.MB | 81.592ms | - | 模型精度高,预测速度快,适用于服务端部署 |
...
...
paddlex/__init__.py
浏览文件 @
86e8a2e2
...
...
@@ -56,4 +56,4 @@ log_level = 2
from
.
import
interpret
__version__
=
'1.1.
0
'
__version__
=
'1.1.
1
'
paddlex/cv/models/slim/prune.py
浏览文件 @
86e8a2e2
...
...
@@ -34,8 +34,12 @@ def sensitivity(program,
param_names
,
eval_func
,
sensitivities_file
=
None
,
pruned_ratios
=
None
):
scope
=
fluid
.
global_scope
()
pruned_ratios
=
None
,
scope
=
None
):
if
scope
is
None
:
scope
=
fluid
.
global_scope
()
else
:
scope
=
scope
graph
=
GraphWrapper
(
program
)
sensitivities
=
load_sensitivities
(
sensitivities_file
)
...
...
@@ -256,7 +260,8 @@ def cal_params_sensitivities(model, save_file, eval_dataset, batch_size=8):
prune_names
,
eval_for_prune
,
sensitivities_file
=
save_file
,
pruned_ratios
=
list
(
np
.
arange
(
0.1
,
1
,
0.1
)))
pruned_ratios
=
list
(
np
.
arange
(
0.1
,
1
,
0.1
)),
scope
=
model
.
scope
)
return
sensitivitives
...
...
paddlex/tools/x2coco.py
浏览文件 @
86e8a2e2
...
...
@@ -96,12 +96,13 @@ class LabelMe2COCO(X2COCO):
def
__init__
(
self
):
super
(
LabelMe2COCO
,
self
).
__init__
()
def
generate_images_field
(
self
,
json_info
,
image_id
):
def
generate_images_field
(
self
,
json_info
,
image_
file
,
image_
id
):
image
=
{}
image
[
"height"
]
=
json_info
[
"imageHeight"
]
image
[
"width"
]
=
json_info
[
"imageWidth"
]
image
[
"id"
]
=
image_id
+
1
json_info
[
"imagePath"
]
=
path_normalization
(
json_info
[
"imagePath"
])
json_img_path
=
path_normalization
(
json_info
[
"imagePath"
])
json_info
[
"imagePath"
]
=
osp
.
join
(
osp
.
split
(
json_img_path
)[
0
],
image_file
)
image
[
"file_name"
]
=
osp
.
split
(
json_info
[
"imagePath"
])[
-
1
]
return
image
...
...
@@ -152,7 +153,7 @@ class LabelMe2COCO(X2COCO):
with
open
(
json_file
,
mode
=
'r'
,
\
encoding
=
get_encoding
(
json_file
))
as
j
:
json_info
=
json
.
load
(
j
)
img_info
=
self
.
generate_images_field
(
json_info
,
image_id
)
img_info
=
self
.
generate_images_field
(
json_info
,
im
g_file
,
im
age_id
)
self
.
images_list
.
append
(
img_info
)
for
shapes
in
json_info
[
"shapes"
]:
object_id
=
object_id
+
1
...
...
@@ -360,6 +361,4 @@ class JingLing2COCO(X2COCO):
points
.
append
([
obj
[
"bndbox"
][
"xmax"
],
obj
[
"bndbox"
][
"ymin"
]])
self
.
annotations_list
.
append
(
self
.
generate_rectangle_anns_field
(
points
,
label
,
image_id
,
object_id
,
label_to_num
))
\ No newline at end of file
object_id
,
label_to_num
))
\ No newline at end of file
setup.py
浏览文件 @
86e8a2e2
...
...
@@ -19,7 +19,7 @@ long_description = "PaddlePaddle Entire Process Development Toolkit"
setuptools
.
setup
(
name
=
"paddlex"
,
version
=
'1.1.
0
'
,
version
=
'1.1.
1
'
,
author
=
"paddlex"
,
author_email
=
"paddlex@baidu.com"
,
description
=
long_description
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录