搜索到的pytorch 模型转tensorrt 模型有2种方案:
- 直接将pytorch 模型转成trt , 参考:https://github.com/NVIDIA-AI-IOT/torch2trt 来自 https://blog.csdn.net/debug_moner/article/details/90313514, 但是这个方法实际操作的时候没有成功,遇到了一个问题,也是github上很多人都遇到的 https://github.com/NVIDIA-AI-IOT/torch2trt/issues/375 ,所以放弃了。
- pytorch --> onnx --> trt (是比较常见的一种操作)
pytorch 转onnx
- 参考:http://ddrv.cn/a/586426
- 第一步需要安装tensorRT
- 建议直接安装tensorRT7.2.1 (本文写于2020年12月31日),我一开始安装成7.0.0.11了,后面遇坑,还要重新安装新版。安装方法:https://blog.csdn.net/shwan_ma/article/details/103637739/ 7.2.1跟这个安装方法一样。
- 还有就是用tar包安装,不要用deb那个,比较麻烦
- 第二步安装onnx以及onnx_tensorrt ,看上面链接就行,不要忘记安装protobuf那些
- 在编译的时候可能会遇到cmake版本太低的问题,升级cmake方法参考:https://blog.csdn.net/fly_hps/article/details/106663431
- 先解压,解压后ln -s /opt/cmakeXXX/* /usr/bin 我的系统是ubuntu 16, 用这个命令生效了。
- 第三步转模型为onnx,需要写代码,参考:https://blog.csdn.net/u012505617/article/details/110486468
onnx转trt,这里也是有几种方法
- 通过tensorRT来转,但是我一开始安装的是7.0.0.11版本的,用命令
失败了./trtexec --onnx=resnet50.onnx --saveEngine=resnet50.trt
- 最后发现还是onnx_tensorrt那个工程包可以成功转,命令为:
onnx2trt model_300.onnx -o my_engine.trt
祝大家操作成功!