注:要选择相应的版本,执行对应的readme 中的内容,否则会报错。
顶部位置
具体内容
1. readme 翻译
TensorRTx旨在通过TensorRT网络定义API实现流行的深度学习网络。
为什么我们不使用解析器(ONNX解析器、UFF解析器、caffe解析器等),而是使用复杂的API从头开始构建网络?我总结了以下方面的优势。
- 灵活、易于修改网络、添加/删除层或输入/输出张量、替换层、合并层、将预处理和后处理集成到网络中等。
- 可调试,以增量开发方式构建整个网络,易于获得中间层结果。
- 有机会学习,在这一发展过程中了解网络结构,而不是将一切视为黑箱。
TensorRTx的基本工作流程是:
- 从pytorch、mxnet或tensorflow等获取经过训练的模型。一些pytorch模型可以在我的repo pytorchx中找到,其余的来自流行的开源repo。
- 将权重导出到纯文本文件–.wts文件。
- 在TensorRT中加载权重,定义网络,构建TensorRT引擎。
- 加载TensorRT引擎并运行推理。
2. git 链接
注:新的代码没有执行成功
- 已经解决,原因是版本没有对应上。
- git 上提的 issue 【对应版本后,已解决】:https://github.com/wang-xinyu/tensorrtx/issues/1217
- 默认的是最新版本的讲解, 20230131 我运行的时候,链接中 是 yolov5-7.0 版本的tensorrt 版本运行过程。
- yolov5-5.0 版本的运行过程,链接:https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5#different-versions-of-yolov5
3. yolov5 旧代码,成功执行记录
自己运行后代码
百度云链接:https://pan.baidu.com/s/1VVB3u9yyI0JECHPWyNYxmg?pwd=6666 提取码:6666
一、使用.pt从pytorch生成.wts,或从model zoo下载.wts
-
- 下载 yolov5-5.0 的源码(https://github.com/ultralytics/yolov5/releases/tag/v5.0)
- 下载 tensorrtx 的源码,并将其中的 tensorrtx/yolov5/gen_wts.py 复制到 yolov5-5.0/weights/ 的文件夹下。(https://github.com/wang-xinyu/tensorrtx)
-
- 下载 yolov5 的权重文件(我下载的是 5.0 的权重文件),并将权重文件放到 yolov5-5.0/weights/ 的文件夹下。(下载地址,同 1 中的链接)
-
- 在 Terminal 中找到 yolov5 源码的位置,
并执行:python gen_wts.py -w ./weights/yolov5s.pt -o ./weights/yolov5s.wts
- 在 Terminal 中找到 yolov5 源码的位置,
二、【 在 盒子中运行 】构建tensorrtx/yolov5并运行(Windows 下 不能进行编译)(新代码没有运行成功)
-
- 进入到 tensorrtx/yolov5 文件夹下,运行mkdir build 创建文件夹。
-
- 复制 一.4 中生成的 yolov5s.wts 到 tensorrtx/yolov5/weights 文件夹中
-
- cd build ,进入到新创建的文件夹中。
- 3.1 修改类别数量,在 yololayer.h 文件中
- 3.2 cmake …
- 3.3 make (成功的话,会在 build 文件夹下出现 yolov5 的 二进制文件)
- 3.4 执行 sudo ./yolov5 -s …/weights/yolov5s.wts …/weights/yolov5s.engine s (最后的 s 指代原模型的类型是 s/m/l/x 中的哪种)
成功的话,会在 指定的位置生成了对应 yolov5s.engine and build/libmyplugins.so(build 文件夹中) 文件
- cd build ,进入到新创建的文件夹中。
-
- 修改 yolov5/yolov5_trt.py 中的四个路径:
yolov5s.engine
build/libmyplugins.so
outputs 检测图片输出结果
images 原图片存放位置
执行 python yolov5/yolov5_trt.py 进行检测图片
- 修改 yolov5/yolov5_trt.py 中的四个路径:
4. 内容4
在这里插入代码片
5. 内容5
在这里插入代码片
6. 内容6
在这里插入代码片