1- # 关于Paddle2ONNX迁移至X2Paddle的说明
2- Paddle2ONNX目前整体功能已经迁移至X2Paddle,用户按照如下方式安装X2Paddle,即可转换Paddle模型至ONNX
3-
4- X2Paddle项目地址: https://github.com/PaddlePaddle/X2Paddle
5- ```
6- git clone https://github.com/PaddlePaddle/X2Paddle
7- cd X2Paddle
8- python setup.py install
9- ```
10- 转换命令
11- ```
12- x2paddle -f paddle2onnx -m paddle_infer_model_dir -s save_onnx_dir
13- ```
14- 其中` paddle_infer_model_dir ` 为Paddle模型目录路径,里面需包含` __model__ ` 和` __params__ ` 两个文件,且文件名得严格一致。
15-
16- 由于Paddle框架和PaddleDetection的升级,目前YOLOv3等检测模型暂无法支持,目前支持模型如下
17- - 支持[ PaddleX] ( https://github.com/PaddlePaddle/PaddleX ) 和[ PaddleClas] ( https://github.com/PaddlePaddle/PaddleCLAS ) 中的所有分类模型
18- - 支持[ PaddleX] ( https://github.com/PaddlePaddle/PaddleX ) 和[ PaddleSeg] ( https://github.com/PaddlePaddle/PaddleSeg ) 中的UNet/DeepLabV3/HRNet语义分割模型
19- - 支持[ PaddleOCR] ( https://github.com/PaddlePaddle/PaddleOCR ) 中的文字检测模型(文字识别模型暂不支持)
20-
21-
221## Legacy
2+
233paddle2onnx支持将** PaddlePaddle** 框架下产出的模型转化到** ONNX** 模型格式.
244paddle2onnx is a toolkit for converting trained model to ** ONNX** from ** PaddlePaddle** deep learning framework.
255
266## 更新记录
7+
8+ 2020.9.21
9+ 1 . 支持ONNX Opset 9, 10, 11三个版本的导出。
10+ 2 . 新增支持转换的OP: swish ,floor, uniform_random, abs, instance_norm, clip, tanh, log和pad2d。
11+
27122019.09.25
28131 . 新增支持SE_ResNet50_vd、SqueezeNet1_0、SE_ResNext50_32x4d、Xception41、VGG16、InceptionV4、YoloV3模型转换。
29142 . 解决0.1版本无法适配新版ONNX版本问题。
@@ -36,44 +21,35 @@ paddle2onnx is a toolkit for converting trained model to **ONNX** from **PaddleP
3621
3722## 环境依赖
3823
39- ### 1. 普通用户环境配置
40- python >= 3.5
41- paddlepaddle >= 1.5.0
42- onnx >= 1.5
43- ### 2. 开发者环境配置
24+ ### 用户环境配置
25+
4426 python >= 3.5
45- paddlepaddle >= 1.5.0
46- onnx >= 1.5
47- torch >= 1.1
48- onnxruntime >= 0.4.0
27+ paddlepaddle >= 1.6.0
28+ onnx >= 1.6
29+
4930## 安装
5031### 安装方式1
32+
5133 pip install paddle2onnx
34+
5235### 安装方式2
36+
5337 git clone https://github.com/PaddlePaddle/paddle2onnx.git
5438 python setup.py install
39+
5540## 使用方式
5641### 普通用户使用方式
5742> 如果用户只是想将paddle模型转化成onnx模型,可以使用下面的命令进行操作。
5843
59- paddle2onnx --fluid_model src_dir --onnx_model dist_name
60- ### 开发者使用方式
61- > 如果用户有一个新的模型要转成onnx模型,想验证模型的精确度,可以使用下面的方式来进行验证。
44+ paddle2onnx --model src_dir --save_dir dist_name
6245
63- git clone https://github.com/PaddlePaddle/paddle2onnx.git
64- python fluid_onnx/fluid_to_onnx.py --fluid_model src --onnx_model dist --debug
6546### 参数选项
6647| 参数 | 参数说明 |
6748| ----------| --------------|
68- | fluid_model | paddle fluid模型和模型参数所在目录 |
69- |onnx_model | 转化成onnx模型的模型名称
70- | name_prefix| [ 可选] 某些paddle模型的模型参数加了前缀,则需要指定模型参数前缀,例如@HUB_mobilenet_v2_imagenet@conv6_2_expand_bn_scale |
71- | fluid_model_name | [ 可选] 如果导入的paddle模型不是默认__ model__ ,需要指定模型的名字|
72- | fluid_params_name| [ 可选] 如果导入的paddle模型参数是合并在一个文件里面,需要指定模型参数文件名|
73- | debug | [ 可选] 如果开发者要对转化的模型进行精度测试,打开此开关 |
74- |return_variable| [ 可选] 在debug模式中,如果paddle模型返回的结果是LoDTensor,需要打开此开关
75- | check_task| [ 可选] 在debug模式中,根据不同配置项选择不同的执行器和数据构造器 |
76- | image_path | [ 可选] 在debug模式中,可以选择加载不同的图片进行精度验证 |
49+ | --model | 指定包含Paddle模型和参数:'__ model__ ', '__ params__ '的路径 |
50+ | --save_dir | 指定转换后的模型保存目录路径 |
51+ | --onnx_opset | ** [ 可选] ** 该参数可设置转换为ONNX的OpSet版本,目前支持9、10、11,默认为10 |
52+
7753
7854## 相关文档
7955[ paddle2onnx测试模型库] ( docs/model_zoo.md )
@@ -82,6 +58,13 @@ paddle2onnx is a toolkit for converting trained model to **ONNX** from **PaddleP
82581 . 默认情况下,paddle2onnx工具是不提供Paddle模型进行转换的。PaddleHub提供了较多标准的模型供使用,用户可以拉取PaddleHub中的模型进行转化,安装PaddleHub的模型后会有提示模型安装位置,例如ssd模型安装位置在/root/paddle/paddle-onnx/ssd_mobilenet_v1_pascal,不同的PaddleHub的安装环境安装位置会有不同,用户请注意PaddleHub模型的安装位置。
83592 . 工具参数name_prefix的使用方式。使用paddle2onnx工具前最好观察一下Paddle模型的参数名字是否带有前缀,例如@HUB_mobilenet_v2_imagenet@conv6_2_expand_bn_scale,那么使用paddle2onnx需要加上参数 --name_prefix @HUB_mobilenet_v2_imagenet@。默认情况下是不带前缀。
84603 . Model zoo的使用方式。Model zoo大部分是提供了PaddleHub模型的链接地址,用户可以通过安装PaddleHub模型来获取标准模型。目前PaddleHub没有集成densenet_121、InceptionV4、SE_ResNet50_vd、Xception41这四个模型,我们提供了PaddleCV库的下载地址,该模型不可以直接进行转化,用户需要使用save_inference_model接口来保存模型和参数。
85- 4 . 目前支持PaddleDetection中的YoloV3,我们提供了PaddleDetection中的yolov3_darknet_voc的下载地址,用户需要使用save_inference_model接口来保存模型和参数,并且yolov3中的multiclass_nms的normalized参数需手动设为True,否则最终结果会存在轻微的差异。
61+
62+ PaddleX, PaddleClas, PaddleSeg和PaddleOCR目前支持模型如下:
63+
64+ - 支持[ PaddleX] ( https://github.com/PaddlePaddle/PaddleX ) 和[ PaddleClas] ( https://github.com/PaddlePaddle/PaddleCLAS ) 中的所有分类模型
65+ - 支持[ PaddleX] ( https://github.com/PaddlePaddle/PaddleX ) 和[ PaddleSeg] ( https://github.com/PaddlePaddle/PaddleSeg ) 中的UNet/DeepLabV3/HRNet语义分割模型
66+ - 支持[ PaddleX] ( https://github.com/PaddlePaddle/PaddleX ) 中YOLOv3的检测模型
67+ - 支持[ PaddleOCR] ( https://github.com/PaddlePaddle/PaddleOCR ) 中的文字检测模型(文字识别模型暂不支持)
68+
8669## License
8770Provided under the [ Apache-2.0 license] ( https://github.com/PaddlePaddle/paddle-onnx/blob/develop/LICENSE ) .
0 commit comments