YOLOv5添加CBAM注意力机制训练前报错RuntimeError: adaptive_max_pool2d_backward_cuda does not have a deterministic.

文章讨论了在YOLOv57.0版本训练过程中遇到的RuntimeError,由于启用了确定性算法,导致在反向传播时出现问题。解决方法是在特定操作前关闭确定性算法,原因在于添加了包含空间注意力的CBAM注意力机制,这在之前没有引起类似错误。
摘要由CSDN通过智能技术生成

报错:

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.

方法:

这里以YOLOv5 7.0版本为例,在train.py中321行,或者直接搜索scaler.scale(loss).backward(),在其前面关闭这个决定性算法。添加代码如下

原因:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值