PaddleX
2020 年 11 月 05 日
PaddleX 使用文档目录
1 10 分钟快速上手使用
2 快速安装
2.1
pip 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Anaconda 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 代码安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
pycocotools 安装问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
3 数据准备
3.1 数据标注工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 数据格式说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 模型训练
4.1 图像分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 目标检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 实例分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 语义分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 加载模型预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 VisualDL 可视化训练指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7 模型压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 模型部署
5.1 部署模型导出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 轻量级服务化部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 服务端部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Nvidia Jetson 开发板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Paddle Lite 移动端部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 OpenVINO 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
7
7
7
7
8
9
9
11
21
21
22
23
24
25
29
31
35
35
36
40
67
72
78
i
5.7 树莓派部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8 部署编译说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
96
6 产业案例集
99
6.1 PaddleX 模型介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
6.2 工业表计读数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.3 人像分割模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.4 多通道遥感影像分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.5 RGB 遥感影像分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.6 地块变化检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7 PaddleX 可视化客户端
135
7.1 介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.2 下载安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.3 使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8 API 接口说明
149
8.1 数据处理与增强 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.2 数据集读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.3 数据集分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.4 视觉模型集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.5 模型压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8.6 预测结果可视化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.7 模型可解释性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9 更新日志
205
10 附录
209
10.1 PaddleX 模型库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
10.2 PaddleX 压缩模型库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
10.3 PaddleX 指标及日志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.4 PaddleX 可解释性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
10.5 训练参数调整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
10.6 无联网模型训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
ii
PaddleX 是基于飞桨核心框架、开发套件和工具组件的深度学习全流程开发工具。具备 全流程打通、融合产
业实践、易用易集成三大特点。
PaddleX
• 项目官网: http://www.paddlepaddle.org.cn/paddle/paddlex
• 项目 GitHub: https://github.com/PaddlePaddle/PaddleX
• 官方 QQ 用户群: 1045148026
• GitHub Issue 反馈: http://www.github.com/PaddlePaddle/PaddleX/issues
1. 注:本使用手册在打印为 pdf 后,可能会存在部分格式的兼容问题;
2. 注:本文档持续在 http://paddlex.readthedocs.io/进行更新。
PaddleX 使用文档目录
1
PaddleX
2
PaddleX 使用文档目录
CHAPTER 1
10 分钟快速上手使用
本文档在一个小数据集上展示了如何通过 PaddleX 进行训练。本示例同步在 AIStudio 上,可直接在线体验
模型训练。
本示例代码源于 Github tutorials/train/classification/mobilenetv3_small_ssld.py,用户可自行下载至本地
运行。
PaddleX 中的所有模型训练跟随以下 3 个步骤,即可快速完成训练代码开发!
注意:不同模型的 transforms、datasets 和训练参数都有较大差异,更多模型训练,可直接根据
文档教程获取更多模型的训练代码。模型训练教程
PaddleX 的其它用法
• 使用 VisualDL 查看训练过程中的指标变化
• 加载训练保存的模型进行预测
1. 安装 PaddleX
3
PaddleX
安装相关过程和问题可以参考 PaddleX 的安装文档。
pip install paddlex -i https://mirror.baidu.com/pypi/simple
2. 准备蔬菜分类数据集
wget https://bj.bcebos.com/paddlex/datasets/vegetables_cls.tar.gz
tar xzvf vegetables_cls.tar.gz
3. 定义训练/验证图像处理流程 transforms
因为训练时加入了数据增强操作,因此在训练和验证过程中,模型的数据处理流程需要分别进行定义。如下
所示,代码在 train_transforms 中加入了RandomCrop和RandomHorizontalFlip两种数据增强方式, 更多
方法可以参考数据增强文档。
from paddlex.cls import transforms
train_transforms = transforms.Compose([
transforms.RandomCrop(crop_size=224),
transforms.RandomHorizontalFlip(),
transforms.Normalize()
])
eval_transforms = transforms.Compose([
transforms.ResizeByShort(short_size=256),
transforms.CenterCrop(crop_size=224),
transforms.Normalize()
])
4. 定义 dataset 加载图像分类数据集
定义数据集,pdx.datasets.ImageNet 表示读取 ImageNet 格式的分类数据集
• paddlex.datasets.ImageNet 接口说明
• ImageNet 数据格式说明
train_dataset = pdx.datasets.ImageNet(
data_dir='vegetables_cls',
file_list='vegetables_cls/train_list.txt',
label_list='vegetables_cls/labels.txt',
transforms=train_transforms,
shuffle=True)
eval_dataset = pdx.datasets.ImageNet(
data_dir='vegetables_cls',
file_list='vegetables_cls/val_list.txt',
4
Chapter 1. 10 分钟快速上手使用
(下页继续)