同步操作将从 PaddlePaddle/PaddleDetection 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
训练得到一个满足要求的模型后,如果想要将该模型部署到已选择的平台上,需要通过tools/export_model.py
将模型导出预测部署的模型和配置文件。
并在同一文件夹下导出预测时使用的配置文件,配置文件名为infer_cfg.yml
。
PaddleDetection
目前支持的部署方式按照部署设备可以分为:python
语言部署,支持在有python paddle
(支持CPU
、GPU
)环境下部署,有两种方式:
tools/infer.py
,此种方式依赖PaddleDetection
代码库。deploy/python/infer.py
,此种方式不依赖PaddleDetection
代码库,可以单个python
文件部署。C++
语言使用paddle inference
预测库部署,支持在Linux
和Windows
系统下部署。请参考文档C++部署。NV Jetson
嵌入式设备上部署TensorRT
加速请参考文档TensorRT预测部署教程
使用tools/export_model.py
脚本导出模型已经部署时使用的配置文件,配置文件名字为infer_cfg.yml
。模型导出脚本如下:
# 导出YOLOv3模型
python tools/export_model.py -c configs/yolov3/yolov3_darknet53_270e_coco.yml -o weights=weights/yolov3_darknet53_270e_coco.pdparams
预测模型会导出到output_inference/yolov3_darknet53_270e_coco
目录下,分别为infer_cfg.yml
, model.pdiparams
, model.pdiparams.info
, model.pdmodel
。
如果需要导出PaddleServing
格式的模型,需要设置export_serving_model=True
:
python tools/export_model.py -c configs/yolov3/yolov3_darknet53_270e_coco.yml -o weights=weights/yolov3_darknet53_270e_coco.pdparams --export_serving_model=True
预测模型会导出到output_inference/yolov3_darknet53_270e_coco
目录下,分别为infer_cfg.yml
, model.pdiparams
, model.pdiparams.info
, model.pdmodel
, serving_client/
文件夹, serving_server/
文件夹。
模型导出具体请参考文档PaddleDetection模型导出教程。
由于CUDA、cuDNN、TENSORRT不一定都是向前兼容的,需要使用与编译Paddle预测库使用的环境完全一致的环境进行部署。
注意: Paddle预测库版本需要>=2.0
Python语言部署,需要在对应平台上安装Paddle Python包。如果Paddle官网上没有提供该平台下的Paddle Python包,您可以自行编译,编译过程请参考Paddle源码编译。
PaddleServing部署 PaddleServing 0.4.0是基于Paddle 1.8.4开发,PaddleServing 0.5.0是基于Paddle2.0开发。
Paddle-Lite部署 Paddle-Lite支持OP列表请参考:Paddle-Lite支持的OP列表 ,请跟进所部署模型中使用到的op选择Paddle-Lite版本。
NV Jetson部署 Paddle官网提供在NV Jetson平台上已经编译好的预测库,Paddle NV Jetson预测库 。 若列表中没有您需要的预测库,您可以在您的平台上自行编译,编译过程请参考Paddle源码编译。
CMake
根据CMakeLists.txt
生成Makefile
,支持Windows、Linux、NV Jetson
平台,然后进行编译产出可执行文件。可以直接使用cpp/scripts/build.sh
脚本编译:cd cpp
sh scripts/build.sh
Python部署,可以使用使用tools/infer.py
(以来PaddleDetection源码)部署,或者使用deploy/python/infer.py
单文件部署
PaddleServing部署请参考,PaddleServing部署部署。
手机移动端部署,请参考Paddle-Lite-Demo部署。
1、Paddle 1.8.4
训练的模型,可以用Paddle2.0
部署吗?
Paddle 2.0是兼容Paddle 1.8.4的,因此是可以的。但是部分模型(如SOLOv2)使用到了Paddle 2.0中新增OP,这类模型不可以。
2、Windows编译时,预测库是VS2015编译的,选择VS2017或VS2019会有问题吗? 关于VS兼容性问题请参考:C++Visual Studio 2015、2017和2019之间的二进制兼容性
3、cuDNN 8.0.4连续预测会发生内存泄漏吗? 经QA测试,发现cuDNN 8系列连续预测时都有内存泄漏问题,且cuDNN 8性能差于cuDNN 7,推荐使用CUDA + cuDNN7.6.4的方式进行部署。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。