文章目录
前言
每个框架都有自己的模型格式,有自己的一套风格,怎么在这些框架之间自由的游走呢?这就是本次课程的要解决的问题,把paddlepaddle模型转成OpenVINO能使用的模型文件。
一、可视化模型
把上节课下载的四个文件打包进ppyoloe_crn_s_80里面。虽然文件夹名字有点长,但是通过名字就大概知道是什么版本的模型,训练了多久,何乐而不为?
进入模型可视化网站,选择我们上一课程训练好的模型。
可以看到模型输入是3x640x640,3是图像的通道,也就是说我们传入的图像是有色图。
定位到模型的输出,在可视化图像的最下方,我们要找到需要模型减支的地方。
二、模型减支
模型减支的目的就是从输入到两个输出concat_14.tmp_0,tmp_16为止,后面的节点都删掉。在模型减支工具的paddle目录下打开cmd。
激活满足本项目要求的虚拟环境。
我们将运行这个模型减支py文件。
运行以下命令。
python prune_paddle_model.py --model_dir ppyoloe_crn_s_80 --model_filename model.pdmodel --params_filename model.pdiparams --output_names tmp_16 concat_14.tmp_0 --save_dir export_model
运行过后新增一个减支完成的模型文件夹。
再次打开可视化工具查看模型的情况。可以看到我们保留的两个节点作为输出,部分节点被减掉了。
三、模型转化
先把paddle模型转换为onnx,需要在环境里面提前安装paddle2onnx。执行以下命令。
paddle2onnx --model_dir export_model --model_filename model.pdmodel --params_filename model.pdiparams --input_shape_dict "{'image':[1,3,640,640]}" --opset_version 11 --save_file ppyoloe_crn_s_80.onnx
执行生成的ppyoloe_crn_s_80.onnx。
onnx转xml,bin(OpenVINO)。
mo --input_model ppyoloe_crn_s_80.onnx
执行结果。
总结
OpenVINO的模型准备就绪,赶紧上车,拉好扶手,注意安全。
版权归原作者 FPGA中国创新中心 所有, 如有侵权,请联系我们删除。