在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()