Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
9c7b2cbc
P
PaddleDetection
项目概览
PaddlePaddle
/
PaddleDetection
大约 1 年 前同步成功
通知
695
Star
11112
Fork
2696
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
184
列表
看板
标记
里程碑
合并请求
40
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
184
Issue
184
列表
看板
标记
里程碑
合并请求
40
合并请求
40
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
9c7b2cbc
编写于
4月 15, 2020
作者:
W
wangguanzhong
提交者:
GitHub
4月 15, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update doc (#504)
上级
d5a5fa4b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
4 deletion
+9
-4
docs/advanced_tutorials/inference/EXPORT_MODEL.md
docs/advanced_tutorials/inference/EXPORT_MODEL.md
+7
-2
docs/tutorials/FAQ.md
docs/tutorials/FAQ.md
+2
-2
未找到文件。
docs/advanced_tutorials/inference/EXPORT_MODEL.md
浏览文件 @
9c7b2cbc
# 模型导出
# 模型导出
训练得到一个满足要求的模型后,如果想要将该模型接入到C++预测库或者Serving服务,需要通过
`tools/export_model.py`
导出该模型。同时,会导出预测时使用的配置文件,路径与模型保存路径相同, 配置文件名为
`infer_cfg.yml`
。
训练得到一个满足要求的模型后,如果想要将该模型接入到C++预测库或者Serving服务,需要通过
`tools/export_model.py`
导出该模型。同时,会导出预测时使用的配置文件,路径与模型保存路径相同, 配置文件名为
`infer_cfg.yml`
。
**说明:**
**说明:**
-
导出模型输入为网络输入图像,即原始图片经过预处理后的图像,具体预处理方式可参考配置文件中TestReader部分。各类检测模型的输入格式分别为:
-
**输入部分:**
导出模型输入为网络输入图像,即原始图片经过预处理后的图像,具体预处理方式可参考配置文件中TestReader部分。各类检测模型的输入格式分别为:
| 模型系列名称 | 输入图像预处理方式 | 其他输入信息 |
| 模型系列名称 | 输入图像预处理方式 | 其他输入信息 |
| :---------: | ----------- | ---------- |
| :---------: | ----------- | ---------- |
...
@@ -12,8 +13,12 @@
...
@@ -12,8 +13,12 @@
| RCNN | 归一化,等比例缩放 | 1. im
\_
info: 格式为[input
\_
H, input
\_
W, scale],input为输入图像,scale为
```输入图像大小/原始图像大小```
<br>
2. im
\_
shape:格式为[origin
\_
H, origin
\_
W, 1.], origin为原始图像 |
| RCNN | 归一化,等比例缩放 | 1. im
\_
info: 格式为[input
\_
H, input
\_
W, scale],input为输入图像,scale为
```输入图像大小/原始图像大小```
<br>
2. im
\_
shape:格式为[origin
\_
H, origin
\_
W, 1.], origin为原始图像 |
| RCNN+FPN | 归一化,等比例缩放,对图像填充0使得长宽均为32的倍数 | 1. im
\_
info: 格式为[input
\_
H, input
\_
W, scale],input为输入图像,scale为
```输入图像大小/原始图像大小```
<br>
2. im
\_
shape:格式为[origin
\_
H, origin
\_
W, 1.], origin为原始图像 |
| RCNN+FPN | 归一化,等比例缩放,对图像填充0使得长宽均为32的倍数 | 1. im
\_
info: 格式为[input
\_
H, input
\_
W, scale],input为输入图像,scale为
```输入图像大小/原始图像大小```
<br>
2. im
\_
shape:格式为[origin
\_
H, origin
\_
W, 1.], origin为原始图像 |
| RetinaNet | 归一化,等比例缩放,对图像填充0使得长宽均为128的倍数 | 1. im
\_
info: 格式为[input
\_
H, input
\_
W, scale],input为输入图像,scale为
```输入图像大小/原始图像大小```
<br>
2. im
\_
shape:格式为[origin
\_
H, origin
\_
W, 1.], origin为原始图像 |
| RetinaNet | 归一化,等比例缩放,对图像填充0使得长宽均为128的倍数 | 1. im
\_
info: 格式为[input
\_
H, input
\_
W, scale],input为输入图像,scale为
```输入图像大小/原始图像大小```
<br>
2. im
\_
shape:格式为[origin
\_
H, origin
\_
W, 1.], origin为原始图像 |
| Face | 归一化 | im
\_
shape: 格式为[origin
\_
H, origin
\_
W], origin为原始图像 |
-
**输出部分:**
导出模型输出统一为NMS的输出,形状为[N, 6], 其中N为预测框的个数,6为[class_id, score, x1, y1, x2, y2]。
-
导出模型输出统一为NMS的输出,形状为[N, 6], 其中N为预测框的个数,6为[class_id, score, x1, y1, x2, y2].
-
模型导出不支持模型结构中包含
```fluid.layers.py_func```
的情况。
## 启动参数说明
## 启动参数说明
...
...
docs/tutorials/FAQ.md
浏览文件 @
9c7b2cbc
...
@@ -25,12 +25,12 @@ batch size可以达到每GPU 4 (Tesla V100 16GB)。
...
@@ -25,12 +25,12 @@ batch size可以达到每GPU 4 (Tesla V100 16GB)。
**Q:**
affine_channel和batch norm是什么关系?
</br>
**Q:**
affine_channel和batch norm是什么关系?
</br>
**A:**
在RCNN系列模型加载预训练模型初始化,有时候会固定住batch norm的参数, 使用预训练模型中的全局均值和方式,并且batch norm的scale和bias参数不更新,已发布的大多ResNet系列的RCNN模型采用这种方式。这种情况下可以在config中设置norm_type为bn或affine_channel, freeze_norm为true (默认为true),两种方式等价。affne_channel的计算方式为
`scale * x + bias`
。只不过设置affine_channel时,内部对batch norm的参数自动做了融合。如果训练使用的affine_channel,用保存的模型做初始化,训练其他任务时,既可使用affine_channel, 也可使用batch norm, 参数均可正确加载。
**A:**
在RCNN系列模型加载预训练模型初始化,有时候会固定住batch norm的参数, 使用预训练模型中的全局均值和方式,并且batch norm的scale和bias参数不更新,已发布的大多ResNet系列的RCNN模型采用这种方式。这种情况下可以在config中设置norm_type为bn或affine_channel, freeze_norm为true (默认为true),两种方式等价。affne_channel的计算方式为
`scale * x + bias`
。只不过设置affine_channel时,内部对batch norm的参数自动做了融合。如果训练使用的affine_channel,用保存的模型做初始化,训练其他任务时,既可使用affine_channel, 也可使用batch norm, 参数均可正确加载。
**Q:**
某些配置项会在多个模块中用到(如
`num_classes`
),如何避免在配置文件中多次重复设置?
**Q:**
某些配置项会在多个模块中用到(如
`num_classes`
),如何避免在配置文件中多次重复设置?
</br>
**A:**
框架提供了
`__shared__`
标记来实现配置的共享,用户可以标记参数,如
`__shared__ = ['num_classes']`
,配置数值作用规则如下:
**A:**
框架提供了
`__shared__`
标记来实现配置的共享,用户可以标记参数,如
`__shared__ = ['num_classes']`
,配置数值作用规则如下:
1.
如果模块配置中提供了
`num_classes`
,会优先使用其数值。
1.
如果模块配置中提供了
`num_classes`
,会优先使用其数值。
2.
如果模块配置中未提供
`num_classes`
,但配置文件中存在全局键值,那么会使用全局键值。
2.
如果模块配置中未提供
`num_classes`
,但配置文件中存在全局键值,那么会使用全局键值。
3.
两者均为配置的情况下,将使用默认值(
`81`
)。
3.
两者均为配置的情况下,将使用默认值(
`81`
)。
**Q:**
在配置文件中设置use_process=True,并且运行报错:
`not enough space for reason[failed to malloc 601 pages...`
**Q:**
在配置文件中设置use_process=True,并且运行报错:
`not enough space for reason[failed to malloc 601 pages...`
</br>
**A:**
当前Reader的共享存储队列空间不足,请增大配置文件
`xxx.yml`
中的
`memsize`
,如
`memsize: 3G`
->
`memsize: 6G`
。或者配置文件中设置
`use_process=False`
。
**A:**
当前Reader的共享存储队列空间不足,请增大配置文件
`xxx.yml`
中的
`memsize`
,如
`memsize: 3G`
->
`memsize: 6G`
。或者配置文件中设置
`use_process=False`
。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录