yolo添加注意力机制报错,在给yolo算法添加注意力机制时,例如CBAM注意力机制会报错RuntimeError: adaptive_max_pool2d_backward_cuda does

报错信息

在我们给yolov5算法添加注意力机制模块时,模型这些都能成功加载。
yolo添加注意力机制报错,在给yolo算法添加注意力机制时,例如CBAM注意力机制会报错RuntimeError: adaptive_max_pool2d_backward_cuda does_第1张图片

但是在扫描完图片过后就会报如下的错误。

RuntimeError: adaptive_max_pool2d_backward_cuda does not have a
deterministic implementation, but you set
‘torch.use_deterministic_algorithms(True)’. You can turn off
determinism just for this operation, or you can use the
‘warn_only=True’ option, if that’s acceptable for your application.
You can also file an issue at
https://github.com/pytorch/pytorch/issues to help us prioritize adding
deterministic support for this operation.

原因:

问题出在反向传播上面。在添加SE注意力机制时,不会出现这样的报错,因为SE注意力机制只考虑了通道注意力机制,而添加了空间注意力机制CABM等就会报错。

解决办法:

这里以yolov5 6.2版本为例
在yolo项目文件中train.py代码文件中大概312行,找不到的直接搜索scaler.scale(loss).backward(),在其前面关闭这个决定性算法。代码如下

torch.use_deterministic_algorithms(False)
scaler.scale(loss).backward()

yolo添加注意力机制报错,在给yolo算法添加注意力机制时,例如CBAM注意力机制会报错RuntimeError: adaptive_max_pool2d_backward_cuda does_第2张图片
完美解决!!!
开始愉快的训练啦!!!
yolo添加注意力机制报错,在给yolo算法添加注意力机制时,例如CBAM注意力机制会报错RuntimeError: adaptive_max_pool2d_backward_cuda does_第3张图片
参考链接
链接: link
链接: link
链接: link

你可能感兴趣的:(YOLOv5问题汇总,YOLO,深度学习,目标检测,yolov5,python,pytorch)