解决报错 cuDNN error: CUDNN_STATUS_NOT_SUPPORTED. This error may appear if you passed in a non-contiguous input.
训练模型出现报错 cuDNN error: CUDNN_STATUS_NOT_SUPPORTED. This error may appear if you passed in a non-contiguous input.
1. 尝试了对可能的tensor添加 .contiguous()函数,不能解决问题,排除。
2. 尝试将batch_size=12 减小到10, 不再报错,但实验要求不能减小batch_size,并且测试发现不是显存不够问题。
3. cudnn和CUDA版本问题的可能性不大,因为用同样的环境,其他实验都能运行良好。
4. 网上搜到的amp(fp16) 和 tf32问题,经过测试也能排除此项。
5. 最后尝试了pytorch discuss提供的方案,见链接
在train.py 脚本的开始加上一句 torch.backends.cudnn.enabled = False 问题就解决了,最后的solution起作用了。
或者使用 torch.backends.cudnn.benchmark = True 或 torch.backends.cudnn.deterministic = True
Enjoy it!