YOLOv5添加注意力机制后报错:RuntimeError: adaptive_avg_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.
解决办法
一、关闭确定性算法模式
在train.py321行( scaler.scale(loss).backward(),代码前)添加下面一行代码:
torch.use_deterministic_algorithms(False)
若找不到可在train.py中使用Ctrl+F打开查找,输入scaler.scale(loss).backward()查找即可!
二、忽视错误(不关闭确定性算法模式)
找到use_deterministic_algorithms(mode, *, warn_only=False):函数,将warn_only=False改为:warn_only=True。
寻找方法:
可在train.py中随机位置输入torch.use_deterministic_algorithms(False),选中use_deterministic_algorithms,Ctrl+鼠标左键跳转。
注意:跳转修改后将torch.use_deterministic_algorithms(False)删除。