cuda11.7, torch 2.0.1 ,报错信息如下
(base) root@autodl-container-b5b6119052-6fa41225:/home/yolov5_project# bash export-yolov5-6.0.sh
export: data=data/coco128.yaml, weights=../yolov5s.pt, imgsz=[640, 640], batch_size=1, device=cpu, half=False, inplace=False, train=False, optimize=False, int8=False, dynamic=True, simplify=False, opset=11, topk_per_class=100, topk_all=100, iou_thres=0.45, conf_thres=0.25, include=['[onnx]']
YOLOv5 🚀 2023-7-10 torch 2.0.1+cu117 CPUFusing layers...
Model Summary: 213 layers, 7225885 parameters, 0 gradients
Traceback (most recent call last):
File "export.py", line 364, in <module>
main(opt)
File "export.py", line 359, in main
run(**vars(opt))
File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "export.py", line 299, in run
y = model(im) # dry runs
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "/home/yolov5_project/yolov5-6.0/models/yolo.py", line 126, in forward
return self._forward_once(x, profile, visualize) # single-scale inference, train
File "/home/yolov5_project/yolov5-6.0/models/yolo.py", line 149, in _forward_once
x = m(x) # run
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/upsampling.py", line 157, in forward
recompute_scale_factor=self.recompute_scale_factor)
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1614, in __getattr__
raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'
其实很多时候,如果针对报错信息本身去纠错,多半有些头痛医头,脚痛医脚的意思。
真要去查'Upsample'到底有没有'recompute_scale_factor'的问题,然后我们把相关代码注释掉的话,那么可能会引发新的问题。
yolo的官方源代码应该是稳定的而且被无数人跑通了的,不应该是到我这儿就有了新的问题。
多半的环境的问题,想想大概率可能是torch版本的问题,毕竟它也写着torch/modules/module.py是有问题。
把torch版本降到1.10.0就可以了,可能稍高一点也是可以,稍低一些也行。