使用Tensorrtx加速yolov5

使用Tensorrtx加速yolov5

一、部署

https://blog.csdn.net/m0_37660632/article/details/121209222

具体命令详见https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5#readme
一、使用Tensorrtx中的gen_wts.py产生wts
1.将Tensorrtx的gen_wts.py文件放在yolov5的源代码下。
使用yolov5对应的虚拟环境,在对应路径下运行 python gen_wts.py -w best.pt,会在同目录生成best.wts文件。
二、再将产生的wts文件放回到Tensorrtx文件中,利用CMake产生.engine。
1.将best.wts复制到F:\tensorrtx\tensorrtx\yolov5下
2.在yolov5路径下新建build文件夹
3.修改\tensorrtx\yolov5下的CMakeLists
4.修改\tensorrtx\yolov5下的yololayer.h,把static constexpr int CLASS_NUM =后面填上你自己的权重对应的类别。
备注:当要同时批量处理多个输入时要将ensorrtx/yolov5下的yolov5.cpp中的BATCHSIZE修改为需要的个数。
5.cmake编译,make生成yolov5。生成的可执行文件yolov5可以将对应版本(比如我用的是yolov5-6.0)的.pt权重文件都生成对应的.engine。
6.利用yolov5可执行文件输入命令
yolov5.exe -s best.wts best.engine s
生成.engine文件。命令最后面的参数时选择网络的模型,比如s就是选择yolov5s。
7.可以在yolov5可执行文件的路径下新建文件夹img,将测试图片放入其中,执行yolov5.exe -d best.engine img
三、报错
使用yolov5生成.engine时报错

[network.cpp::nvinfer1::Network::addScale::737] Error Code 3: API Usage Error (Parameter check failed at: network.cpp::nvinfer1::Network::addScale::737, condition: shift.count > 0 ? (shift.values != nullptr) : (shift.values == nullptr)
)

我在使用其他电脑生成的.pt权重文件生成engine时报上面这个错误,可能的原因:
1.没有修改tensorrtx\yolov5下的yololayer.h下面的类别,tensorrtx的类别和yolo网络训练的类别对不上。
2.Tensorrt网络结构版本和yolov5生成的.pt权重不对应,需要yolov5的版本一一对应。比如用yolov5-6.0,那么一定要用对用的Tensorrt版本。
3.yolov5的网络模型(n/s/m/l/x/n6/s6/m6/l6/x6)和tensorrtx\yolov5中的gd、gw(gd和gw调整网络模型的大小)对应不上。

https://blog.csdn.net/qq_58355216/article/details/124680092

二、设置BATCHSIZE同时批量处理多个输入

1.在生成.engine文件时修改ensorrtx/yolov5下的yolov5.cpp中的BATCHSIZE,改为需要同时处理的个数。
2.利用tensorrtx在按照正常流程生成.engine后可以通过命令yolov5.exe -d [engine] [imgdir]测试。 生成的engine的batchsize要大于等于yolov5.exe中的batchsize,否则报错:Error: Batch size is 5, but the engine was built with max batch size 1

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值