当前位置:   article > 正文

【目标检测-YOLO】YOLOv5-yolov5s TensorRT部署准备之ONNX导出(第一篇)_自己训练的yolov5模型导出成tensorrt onnx部署

自己训练的yolov5模型导出成tensorrt onnx部署

下面的内容是对 YOLOv5-yolov5s TensorRT部署前的准备之导出可用的ONNX。

之前已经写过部分内容,但是还不够详细。

1. YOLOv5-6.0版本

以下内容以 6.0 版本为准。

修改导出文件:

  1. def forward(self, x):
  2. z = [] # inference output
  3. for i in range(self.nl):
  4. x[i] = self.m[i](x[i]) # conv2d
  5. # 修改1:对于任何用到shape、size返回值的参数时,为了避免pytorch 导出 onnx 时候,对size 进行跟踪,跟踪时候会生成gather、shape的节点。使用 map 加上int转换。
  6. bs, _, ny, nx = map(int,x[i].shape) # x(bs,255,20,20) to x(bs,3,20,20,85)
  7. # 修改2:对于reshape、view操作时,-1的指定请放到batch维度。其他维度可以计算出来即可。batch维度禁止指定为大于-1的明确数字。所以这里 bs 改为 -1.
  8. x[i] = x[i].view(-1, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()
  9. # export.py:model.train() if train else model.eval() # 264行: train=False, # model.train() mode 所以这里是 model.eval()模式, self.training 为 False,所以推理使用以下代码
  10. if not sel
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/553161
推荐阅读
相关标签
  

闽ICP备14008679号