Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
919310bb
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看板
未验证
提交
919310bb
编写于
5月 12, 2020
作者:
W
wangguanzhong
提交者:
GitHub
5月 12, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
deprecate cpp_infer (#651)
上级
19b79897
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
4 addition
and
55 deletion
+4
-55
deploy/python/README.md
deploy/python/README.md
+2
-1
docs/advanced_tutorials/deploy/INFERENCE.md
docs/advanced_tutorials/deploy/INFERENCE.md
+0
-54
tools/cpp_infer.py
tools/cpp_infer.py
+2
-0
未找到文件。
deploy/python/README.md
浏览文件 @
919310bb
...
...
@@ -46,7 +46,8 @@ python deploy/python/infer.py --model_dir=/path/to/models --image_file=/path/to/
说明:
run_mode:fluid代表使用AnalysisPredictor,精度float32来推理,其他参数指用AnalysisPredictor,TensorRT不同精度来推理。
-
run_mode:fluid代表使用AnalysisPredictor,精度float32来推理,其他参数指用AnalysisPredictor,TensorRT不同精度来推理。
-
PaddlePaddle默认的GPU安装包(<=1.7),不支持基于TensorRT进行预测,如果想基于TensorRT加速预测,需要自行编译,详细可参考
[
预测库编译教程
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/advanced_usage/deploy/inference/paddle_tensorrt_infer.html
)
。
## 3. 部署性能对比测试
对比AnalysisPredictor相对Executor的推理速度
...
...
docs/advanced_tutorials/deploy/INFERENCE.md
已删除
100644 → 0
浏览文件 @
19b79897
# 模型预测
本篇教程使用Python API对
[
导出模型
](
EXPORT_MODEL.md
)
保存的inference_model进行预测。
在PaddlePaddle中预测引擎和训练引擎底层有着不同的优化方法,代码走不同的分支,两者都可以进行预测。在入门教程的训练/评估/预测流程中介绍的预测流程,即tools/infer.py是使用训练引擎分支的预测流程。保存的inference_model,可以通过
`fluid.io.load_inference_model`
接口,走训练引擎分支预测。本文档也同时介绍通过预测引擎的Python API进行预测,一般而言这种方式的速度优于前者。
这篇教程介绍的Python API预测示例,除了可视化部分依赖PaddleDetection外,预处理、模型结构、执行流程均不依赖PaddleDetection。
## 使用方式
```
bash
export
CUDA_VISIBLE_DEVICES
=
0
python tools/cpp_infer.py
--model_path
=
inference_model/faster_rcnn_r50_1x/
--config_path
=
tools/cpp_demo.yml
--infer_img
=
demo/000000570688.jpg
--visualize
```
主要参数说明:
-
model_path: inference_model保存路径
-
config_path: 参数配置、数据预处理配置文件,注意不是训练时的配置文件
-
infer_img: 待预测图片
-
visualize: 是否保存可视化结果,默认保存路径为
```output/```
-
dump_result: 是否保存预测结果,保存格式为json文件,默认保存路径为
```output/```
更多参数可在
```demo/infer_cfg.yml```
中查看,主要参数:
-
use_python_inference:
若为true,使用
`fluid.io.load_inference_model`
接口,走训练引擎分支预测。
-
mode:
支持fluid、trt_fp32、trt_fp16、trt_int8,当use_python_inference为false时起作用。fluid是通过预测引擎分支预测,trt_fp32、trt_fp16、trt_int8是通过预测引擎分支预测,后端基于TensorRT的FP32、FP16精度。
-
min_subgraph_size:
当设置mode采用TensorRT时,注意设置此参数。设置与模型arch相关,对部分arch需要调大该参数,一般设置为40适用于所有模型。适当的调小
`min_subgraph_size`
会对预测有加速效果,例如YOLO中该参数可设置为3。
-
Preprocess:
数据预处理配置,一般来说顺序为Resize -> Normalize -> Permute,对于FPN模型还需配置PadStride。不同模型的数据预处理参考训练配置中的
`TestReader`
部分。
**注意**
1.
基于TensorRT预测,数据预处理Resize设置的shape必须保持与模型导出时shape大小一致。
2.
预处理中
`PadStride`
为输入图片右下角填充0,默认设置stride为0,即不对输入图片做padding操作。模型中包含FPN结构时,stride应设置为32。模型为RetinaNet系列模型时,stride应设置为128.
3.
PaddlePaddle默认的GPU安装包(<=1.7),是不支持基于TensorRT进行预测,如果想基于TensorRT加速预测,需要自行编译,详细可参考
[
预测库编译教程
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/advanced_usage/deploy/inference/paddle_tensorrt_infer.html
)
。
tools/cpp_infer.py
浏览文件 @
919310bb
...
...
@@ -505,6 +505,8 @@ def visualize(bbox_results, catid2name, num_classes, mask_results=None):
def
infer
():
logger
.
info
(
"cpp_infer.py is deprecated since release/0.3. Please use"
"deploy/python for your python deployment"
)
model_path
=
FLAGS
.
model_path
config_path
=
FLAGS
.
config_path
res
=
{}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录