Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle-Lite
提交
fc34bbd3
P
Paddle-Lite
项目概览
PaddlePaddle
/
Paddle-Lite
通知
331
Star
4
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
271
列表
看板
标记
里程碑
合并请求
78
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle-Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
271
Issue
271
列表
看板
标记
里程碑
合并请求
78
合并请求
78
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
fc34bbd3
编写于
1月 14, 2020
作者:
H
huzhiqiang
提交者:
GitHub
1月 14, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FIX model_optimize_tool doc
上级
d8e27ccc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
24 deletion
+28
-24
_all_pages/develop/model_optimize_tool.md
_all_pages/develop/model_optimize_tool.md
+12
-12
_all_pages/v2.2.0/model_optimize_tool.md
_all_pages/v2.2.0/model_optimize_tool.md
+16
-12
未找到文件。
_all_pages/develop/model_optimize_tool.md
浏览文件 @
fc34bbd3
...
...
@@ -8,7 +8,7 @@ Lite架构在预测过程中表现出来的高性能得益于其丰富的优化
## 准备model_optimize_tool
当前获得model_optimize_tool方法有三种:
1.
我们提供当前develop分支编译结果下载:
[
model_optimize_tool
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool
%2Fmodel_optimize_tool
)
、
[
model_optimize_tool_mac
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool%2F
model_optimize_tool_mac
)
1.
我们提供当前develop分支编译结果下载:
[
model_optimize_tool
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool
/model_optimize_tool
)
、
[
model_optimize_tool_mac
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool/
model_optimize_tool_mac
)
2.
可以进入Paddle-Lite Github仓库的
[
release界面
](
https://github.com/PaddlePaddle/Paddle-Lite/releases
)
,选择release版本下载对应的model_optimize_tool
...
...
@@ -31,7 +31,7 @@ model_optimize_tool是x86平台上的可执行文件,需要在PC端运行:
```
bash
./model_optimize_tool
```
![](
https://
user-images.githubusercontent.com/45189361/71724953-2842c980-2e6d-11ea-8ff5-7d20083ba297
.png
)
![](
https://
paddlelite-data.bj.bcebos.com/doc_images%2Fhelp
.png
)
### 功能一:转化模型为Paddle-Lite格式
model_optimize_tool可以将PaddlePaddle支持的模型转化为Paddle-Lite支持的模型格式,期间执行的操作包括:将protobuf格式的模型文件转化为naive_buffer格式的模型文件,有效降低模型体积;执行“量化、子图融合、混合调度、Kernel优选”等图优化操作,提升其在Paddle-Lite上的运行速度、内存占用等性能指标。
...
...
@@ -43,19 +43,20 @@ model_optimize_tool可以将PaddlePaddle支持的模型转化为Paddle-Lite支
PaddlePaddle模型有两种保存格式:
Combined Param:所有参数信息保存在单个文件
`params`
中,模型的拓扑信息保存在
`__model__`
文件中。
![
opt_combined_model
](
https://
user-images.githubusercontent.com/45189361/71725708-de0f1780-2e6f-11ea-9205-a12a0ec26e02
.png
)
![
opt_combined_model
](
https://
paddlelite-data.bj.bcebos.com/doc_images%2Fcombined_model
.png
)
Seperated Param:参数信息分开保存在多个参数文件中,模型的拓扑信息保存在
`__model__`
文件中。
![
opt_seperated_model
](
https://
user-images.githubusercontent.com/45189361/71724977-47d9f200-2e6d-11ea-934b-fb068d45b700
.png
)
![
opt_seperated_model
](
https://
paddlelite-data.bj.bcebos.com/doc_images%2Fseperated_model
.png
)
(2) 终端中执行
`model_optimize_tool`
优化模型
**使用示例**
:转化
`mobilenet_v1`
模型
```
./model_optimize_tool --model_dir=./mobilenet_v1 --valid_targets=arm --optimize_out_type=naive_buffer --optimize_out=mobilenet_v1_opt
```
以上命令可以将
`mobilenet_v1`
模型转化为arm硬件平台、naive_buffer格式的Paddle_Lite支持模型,优化后的模型文件位于
`mobilenet_v1_opt`
,转化结果如下图所示:
![
opt_resulted_model
](
https://
user-images.githubusercontent.com/45189361/71725712-e10a0800-2e6f-11ea-8cdf-bdc1e1bc2fbc
.png
)
![
opt_resulted_model
](
https://
paddlelite-data.bj.bcebos.com/doc_images%2Fcombined_model
.png
)
(3)
**更详尽的转化命令**
总结:
...
...
@@ -97,7 +98,7 @@ model_optimize_tool可以统计并打印出model中的算子信息、判断Paddl
`./model_optimize_tool --print_model_ops=true --model_dir=mobilenet_v1 --valid_targets=arm`
![
opt_print_modelops
](
https://
user-images.githubusercontent.com/45189361/71725716-e404f880-2e6f-11ea-8db6-81d61aaca481
.png
)
![
opt_print_modelops
](
https://
paddlelite-data.bj.bcebos.com/doc_images%2Fmodel_support
.png
)
(2)使用model_optimize_tool打印当前Paddle-Lite支持的算子信息
...
...
@@ -105,21 +106,20 @@ model_optimize_tool可以统计并打印出model中的算子信息、判断Paddl
以上命令可以打印出当前Paddle-Lite支持的所有算子信息,包括OP的数量和每个OP支持哪些硬件平台:
![
opt_print_allops
](
https://
user-images.githubusercontent.com/45189361/71725719-e6675280-2e6f-11ea-8f03-035f3b7950cd
.png
)
![
opt_print_allops
](
https://
paddlelite-data.bj.bcebos.com/doc_images%2Fall_ops
.png
)
`./model_optimize_tool ----print_supported_ops=true --valid_targets=
arm
`
`./model_optimize_tool ----print_supported_ops=true --valid_targets=
x86
`
以上命令可以打印出当
`valid_targets=
arm
`
时Paddle-Lite支持的所有OP:
以上命令可以打印出当
`valid_targets=
x86
`
时Paddle-Lite支持的所有OP:
![
opt_print_supportedops
](
https://
user-images.githubusercontent.com/45189361/71725721-e8311600-2e6f-11ea-91b0-a3e014aea096
.png
)
![
opt_print_supportedops
](
https://
paddlelite-data.bj.bcebos.com/doc_images%2Fx86_ops
.png
)
## 其他功能:合并x2paddle和model_optimize_tool的一键脚本
**背景**
:如果想用Paddle-Lite运行第三方来源(tensorflow、caffe、onnx)模型,一般需要经过两次转化。即使用x2paddle工具将第三方模型转化为PaddlePaddle格式,再使用model_optimize_tool将PaddlePaddle模型转化为Padde-Lite可支持格式。
为了简化这一过程,我们提供一键脚本,将x2paddle转化和model_optimize_tool转化合并:
**一键转化脚本**
:
[
auto_transform.sh
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool%2Fauto_transform.sh
)
**一键转化脚本**
:
[
auto_transform.sh
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool/auto_transform.sh
)
**环境要求**
:使用
`auto_transform.sh`
脚本转化第三方模型时,需要先安装x2paddle环境,请参考
[
x2paddle环境安装方法
](
https://github.com/PaddlePaddle/X2Paddle#环境依赖
)
安装x2paddle和其环境依赖项。
...
...
_all_pages/v2.2.0/model_optimize_tool.md
浏览文件 @
fc34bbd3
...
...
@@ -7,7 +7,8 @@ Lite架构在预测过程中表现出来的高性能得益于其丰富的优化
## 准备model_optimize_tool
当前获得model_optimize_tool方法有三种:
1.
我们提供当前develop分支编译结果下载:
[
model_optimize_tool
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool%2Fmodel_optimize_tool
)
、
[
model_optimize_tool_mac
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool%2Fmodel_optimize_tool_mac
)
1.
我们提供当前develop分支编译结果下载:
[
model_optimize_tool
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool/model_optimize_tool
)
、
[
model_optimize_tool_mac
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool/model_optimize_tool_mac
)
2.
可以进入Paddle-Lite Github仓库的
[
release界面
](
https://github.com/PaddlePaddle/Paddle-Lite/releases
)
,选择release版本下载对应的model_optimize_tool
...
...
@@ -30,7 +31,8 @@ model_optimize_tool是x86平台上的可执行文件,需要在PC端运行:
```
bash
./model_optimize_tool
```
![](
http://paddlelite-data.bj.bcebos.com/doc_img/model_optimize_tool/opt_help.png?authorization=bce-auth-v1%2Fda8cb47e87b14fdbbf696cae71997a31%2F2020-01-03T08%3A11%3A08Z%2F300%2Fhost%2F57179eb47be8edaf766ea42bad18682b3e1b3faca8040997726206ba5f38770c
)
![](
https://paddlelite-data.bj.bcebos.com/doc_images%2Fhelp.png
)
### 功能一:转化模型为Paddle-Lite格式
model_optimize_tool可以将PaddlePaddle支持的模型转化为Paddle-Lite支持的模型格式,期间执行的操作包括:将protobuf格式的模型文件转化为naive_buffer格式的模型文件,有效降低模型体积;执行“量化、子图融合、混合调度、Kernel优选”等图优化操作,提升其在Paddle-Lite上的运行速度、内存占用等性能指标。
...
...
@@ -41,19 +43,20 @@ model_optimize_tool可以将PaddlePaddle支持的模型转化为Paddle-Lite支
PaddlePaddle模型有两种保存格式:
Combined Param:所有参数信息保存在单个文件
`params`
中,模型的拓扑信息保存在
`__model__`
文件中。
![
](
http://paddlelite-data.bj.bcebos.com/doc_img/model_optimize_tool/opt_combined_model.png?authorization=bce-auth-v1%2Fda8cb47e87b14fdbbf696cae71997a31%2F2020-01-03T08%3A19%3A28Z%2F300%2Fhost%2F179ff9de443fc37c1954756946999f3df4f7bb1cbf5e8c5a70845b44c3fd4fcf
)
![
opt_combined_model
](
https://paddlelite-data.bj.bcebos.com/doc_images%2Fcombined_model.png
)
Seperated Param:参数信息分开保存在多个参数文件中,模型的拓扑信息保存在
`__model__`
文件中。
![
](
http://paddlelite-data.bj.bcebos.com/doc_img/model_optimize_tool/opt_seperated_model.png?authorization=bce-auth-v1%2Fda8cb47e87b14fdbbf696cae71997a31%2F2020-01-03T08%3A19%3A42Z%2F300%2Fhost%2F0cbe5dde746a09d9209ab572ab849a415bf05fc0bf9ab9c07995c9f92fd6d90b
)
![
opt_seperated_model
](
https://paddlelite-data.bj.bcebos.com/doc_images%2Fseperated_model.png
)
(2) 终端中执行
`model_optimize_tool`
优化模型
**使用示例**
:转化
`mobilenet_v1`
模型
```
./model_optimize_tool --model_dir=./mobilenet_v1 --valid_targets=arm --optimize_out_type=naive_buffer --optimize_out=mobilenet_v1_opt
```
以上命令可以将
`mobilenet_v1`
模型转化为arm硬件平台、naive_buffer格式的Paddle_Lite支持模型,优化后的模型文件位于
`mobilenet_v1_opt`
,转化结果如下图所示:
![
](
http://paddlelite-data.bj.bcebos.com/doc_img/model_optimize_tool/opt_resulted_model.png?authorization=bce-auth-v1%2Fda8cb47e87b14fdbbf696cae71997a31%2F2020-01-03T08%3A21%3A39Z%2F300%2Fhost%2F8c5580deec3f4c2ff67145100db2ce9efb307c0603d1f19e45bc0db2708309a3
)
![
opt_resulted_model
](
https://paddlelite-data.bj.bcebos.com/doc_images%2Fcombined_model.png
)
(3)
**更详尽的转化命令**
总结:
...
...
@@ -95,7 +98,7 @@ model_optimize_tool可以统计并打印出model中的算子信息、判断Paddl
`./model_optimize_tool --print_model_ops=true --model_dir=mobilenet_v1 --valid_targets=arm`
![
](
http://paddlelite-data.bj.bcebos.com/doc_img/model_optimize_tool/opt_print_modelops.png?authorization=bce-auth-v1%2Fda8cb47e87b14fdbbf696cae71997a31%2F2020-01-03T08%3A22%3A49Z%2F300%2Fhost%2F9dd8708cce6c24630d702e71abdac48bb75ec1219285704b742b420de38b0f02
)
![
opt_print_modelops
](
https://paddlelite-data.bj.bcebos.com/doc_images%2Fmodel_support.png
)
(2)使用model_optimize_tool打印当前Paddle-Lite支持的算子信息
...
...
@@ -103,22 +106,23 @@ model_optimize_tool可以统计并打印出model中的算子信息、判断Paddl
以上命令可以打印出当前Paddle-Lite支持的所有算子信息,包括OP的数量和每个OP支持哪些硬件平台:
![
](
http://paddlelite-data.bj.bcebos.com/doc_img/model_optimize_tool/opt_print_allops.png?authorization=bce-auth-v1%2Fda8cb47e87b14fdbbf696cae71997a31%2F2020-01-03T08%3A22%3A07Z%2F300%2Fhost%2Fc6438abfd267edaacae741e990c35f95f63a7ea9a803a0ea9659edcf4c1170df
)
![
opt_print_allops
](
https://paddlelite-data.bj.bcebos.com/doc_images%2Fall_ops.png
)
`./model_optimize_tool ----print_supported_ops=true --valid_targets=
arm
`
`./model_optimize_tool ----print_supported_ops=true --valid_targets=
x86
`
以上命令可以打印出当
`valid_targets=
arm
`
时Paddle-Lite支持的所有OP:
以上命令可以打印出当
`valid_targets=
x86
`
时Paddle-Lite支持的所有OP:
![
](
http://paddlelite-data.bj.bcebos.com/doc_img/model_optimize_tool/opt_print_supportedops.png?authorization=bce-auth-v1%2Fda8cb47e87b14fdbbf696cae71997a31%2F2020-01-03T08%3A23%3A46Z%2F300%2Fhost%2F849bd65807abec2cc2a0560006397952b25f3331fe39d13815b4f91f63a7532f
)
![
opt_print_supportedops
](
https://paddlelite-data.bj.bcebos.com/doc_images%2Fx86_ops.png
)
## 其他功能:合并x2paddle和model_optimize_tool的一键脚本
**背景**
:如果想用Paddle-Lite运行第三方来源(tensorflow、caffe、onnx)模型,一般需要经过两次转化。即使用x2paddle工具将第三方模型转化为PaddlePaddle格式,再使用model_optimize_tool将PaddlePaddle模型转化为Padde-Lite可支持格式。
为了简化这一过程,我们提供一键脚本,将x2paddle转化和model_optimize_tool转化合并:
**一键转化脚本**
:
[
auto_transform.sh
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool%2Fauto_transform.sh
)
**一键转化脚本**
:
[
auto_transform.sh
](
https://paddlelite-data.bj.bcebos.com/model_optimize_tool/auto_transform.sh
)
**环境要求**
:使用
`auto_transform.sh`
脚本转化第三方模型时,需要先安装x2paddle环境,请参考
[
x2paddle环境安装方法
](
[https://github.com/PaddlePaddle/X2Paddle#%E7%8E%AF%E5%A2%83%E4%BE%9D%E8%B5%96](https://github.com/PaddlePaddle/X2Paddle#环境依赖
)
)
安装x2paddle和其环境依赖项。
**环境要求**
:使用
`auto_transform.sh`
脚本转化第三方模型时,需要先安装x2paddle环境,请参考
[
x2paddle环境安装方法
](
https://github.com/PaddlePaddle/X2Paddle#环境依赖
)
安装x2paddle和其环境依赖项。
**使用方法**
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录