如何部署Tensorrtx

因为模型跑起来太慢了,所以想要运用tensorrtx进行加速。但是这个是有难度的,且网络上的教程大多写的不是很好。我将以一个新人的视角,从头开始部署基于yolov5的tensorrtx加速。

知识补充:TensorRT和TensorRTX的区别

tensorRT是英伟达出的模型加速推理的SDK,tensorrtx是wangxinyu大佬自己写的通过tensorrt的API直接构建网络的进行模型部署的方案。简单来说就是tensorrtx是教你怎么用tensorRT部署模型的。你要做YOLOv5的模型部署,直接按照tensorrtx上的教程一步一步来就行了。

一:TensorRT的安装

Windows+Anaconda配置TensorRT环境-CSDN博客

简要介绍一下TensorRT的使用流程

TensorRT的使用流程如下图所示,分为两个阶段:预处理阶段和推理阶段。其部署流程大致如下:1.导出网络定义以及相关权重2.解析网络定义以及相关权重3.根据显卡算子构造出最优执行计划4.将执行计划序列化存储5.反序列化执行计划6.进行推理

可以从步骤3得知,tensorrt实际是和硬件关系密切的,所以在部署过程中,如果硬件(显卡)和软件(驱动、cudatoolkit、cudnn)发生了改变,那么从这一步开始就要重新走一遍了。

二:将Pytorch(.pt)模型转为onnx模型

这一步主要是为了将深度学习模型的结构和参数导出来。考虑到实际部署环境的精简性,我这里还是建议大家在使用中先将深度学习模型导出ONNX文件,然后拿着ONNX文件去部署就可以了。

原因很简单,因为ONNX不像Pytorch和TensorFlow那样,还需要安装这些框架运行的依赖包(比如 conda install pytorch,不然你没办法用pytorch的代码),TensorRT可以直接从ONNX文件中读取出网络定义和权重信息。

除此以外,ONNX更像是“通用语言”,ONNX的出现本身就是为了描述网络结构和相关权重,除此以外,还有专门的工具可以对ONNX文件进行解析,查看相关结构,例如网站:https://lutzroeder.github.io/netron/

可以直接将onnx文件拖进去,查看网络结构。

三:ONNX模型转换为TensorRT模型

参考资料:

TensorRT 学习(二):Pytorch 模型转 TensorRT C++ 流程_trt模型推理结果导出c++-CSDN博客

TensorRT(一)Windows+Anaconda配置TensorRT环境 (Python版 )_conda tensorrt-CSDN博客

 

相关推荐

  1. 如何配置TensorRT版的Katago

    2024-04-25 19:36:02       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 19:36:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 19:36:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 19:36:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 19:36:02       20 阅读

热门阅读

  1. Linux c++ 中文字符转十六进制 UTF-8 编码

    2024-04-25 19:36:02       10 阅读
  2. 【React】生命周期

    2024-04-25 19:36:02       12 阅读
  3. 【vue】axios封装拦截

    2024-04-25 19:36:02       12 阅读
  4. Electron vue 进程间消息通行

    2024-04-25 19:36:02       14 阅读
  5. LeetCode-数组中最长的方波

    2024-04-25 19:36:02       14 阅读
  6. history命令

    2024-04-25 19:36:02       12 阅读
  7. 为什么你的项目总延期?多半是没做好5件事

    2024-04-25 19:36:02       11 阅读
  8. 数据结构-分治策略(分治算法)

    2024-04-25 19:36:02       13 阅读
  9. 逆序对 题解 归并排序

    2024-04-25 19:36:02       11 阅读