1.当我们完成了数据获取,数据标注,数据清洗,模型训练,模型评估,模型优化后,我们该做什么呢?当 然是模型上线.也就是说将模型部署,封装打包,提供给最终要使用的用户.
2.提到模型部署,现在有好几种方式,eg:TF_Servering,flask_web,安卓,TensorRT等.我们要根据不同的场景和需求来选择合适部署方式.
3.我比较熟悉的是TensorRT的部署.什么是tensorRT呢???它是NVIDIA(英伟达)针对自家平台做的一个加速包.支持c++,python API接口.可以把pytorch,tensorflow或者其他框架训练好的模型,转换为TensorRT格式,然后利用它的推理引擎(engine文件)去运行我们的这个模型,从而提升这个模型在NVIDIA GPU上的运行速度以及满足特殊场景下实时性的需求.支持算力在5.0以及以上的显卡设备.
4.场景(PC端(个人电脑),嵌入式端,服务端等...)
1)PC端:1080,2080,3080等显卡.
2)嵌入式端: xavier NX,TX2,nano等.
3)服务器端: v100等.
5.tensorRT的加速手段
1)算子融合:通过融合一些计算操作来减少数据的流通次数,以及显存的频繁使用来提速.
2)量化:TensorRT支持INT8和FP16的计算.深度学习在网络训练时一般默认采用16位的数据,trt
在网络推理时选用不那么高的精度,从而达到加速推断的目的.
3)使用cuda steram多流技术,最大化实现并行操作.
6.CPU与GPU的区别,为何部署在GPU上?CPU主要是解释计算机指令以及处理计算机软件中的数据,相当于是一台计算机的“大脑”,而GPU是一个专门的图形核心处理器,是显示卡的“大脑”,决定显卡的档次和大部分性能.
答案就在图中!!!!!!!!!!!!!!!!!!!!
7.缺点:
1)经过优化后的模块必须与特定的GPU绑定.
2)TensorRT依赖CUDA,如果你想要更换更高版本的tensorrt,就必须更换CUDA,更换环境比较麻 烦 .
3)学习研究的资料较少.
8.准备开始研究在jetson 设备上分别以c++,python两种API进行部署(yolov5).希望可以顺利进行部署,然后做一个对比试验,之后再给大家分享数据!
WOW!