Yolov5 中添加注意力机制 CBAM时,报错:RuntimeError: adaptive_max_pool2d_backward_cuda does not have a determinist

文章讲述了在Yolov5中集成CBAM模块时遇到的PyTorch确定性问题,原因在于使用了不支持确定性操作的adaptive_max_pool2d。解决方法是关闭PyTorch的确定性算法,并在train.py中的特定行添加相关代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在yolov5中添加CBAM模块时,会遇到的错误提示是由于 PyTorch 中的 torch.autograd 在计算反向传播时缺乏确定性实现。这个问题通常与使用了不支持确定性操作的功能(如 adaptive_max_pool2d)有关。

解决办法:

关闭确定性算法:PyTorch 提供了一个配置选项来要求所有操作都必须是确定性的,导致某些操作因为没有确定性实现而失败。

在train.py中找到scaler.scale(loss).backward()此行代码,在此行代码添加此行代码:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值