文章目录
前言
本文主要是针对onnx部署方式和tensorrtx(通过tensorrt网络定义API实现网络)两种方式进行对比,特别是刚入坑的小伙伴不知道用哪种方式更合适,更合理时,本文或许能够帮你捋清整个tensorrt的学习思路。另外大部分内容都是基于CV方向,其他领域我也不是很懂,望各位看官海涵
提示:这不是开往幼儿园的车,请各位坐稳抓紧了。
一、浅谈tensorrt
能有兴趣看这篇文章的我想或多或少对tensorrt有所了解,我不知道大家是因为什么了解到的tensorrt,于我而言,简单的说就是工作需要,我自己是做CV方向的,项目到了部署阶段的时候无非就是几种方法,若只想用CPU,可以用openvion,如果希望使用GPU,libtorch和tensorrt两种方式均可,libtorch部署pytorch模型确实很方便,但是考虑到GPU整体资源的利用率和效率等我推荐大家还是直接搞tensorrt,因为tensorrt本身就是nvidia自家的东西,自家的N卡用自己的tensorrt当然合适。我们也是经过了几轮对比测试,发现tensorrt确实很好用,也很快,上手难度说高也高,说不高也不高。至于tensorrt具体是什么,这篇文章不会再做什么介绍了,如果连onnx 或者tensorrt是什么都不是很清楚的朋友,后面内容就不用看了。
二、tensorrtx的使用学习轨迹
1.tensorrtx-初出茅庐
关于初学tensorrt的朋友来说,github中的王鑫宇大神的那个项目代码自己肯定clone到本地了吧,如果没有,我们赶紧来一起看看:
https://github.com/wang-xinyu/tensorrtx
我们可以看到, 鑫宇其实总结了很多不同backbone下的tensorrt的项目,但我看了一下,大部分还都是CV方向的,从基础的网络层到目标检测网络到语义分割等等,还是比较适合新手入门的,我之前yolov5 还算用的比较多,所以最早看的是他的yolov5。
特别注意的是他的运行环境大部分都是Ubuntu 上的,那上面cm