Pytorch 模型转tensorRT 记录

搜索到的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

    祝大家操作成功!

你可能感兴趣的:(pytorch)