目录
环境说明
Ubuntu 18.04.5 LTS
python3.7
pytorch 1.4.0
问题描述
跑一个新版本的实验过程中出现了这个问题,这个新版本是在旧版本基础上改进的,改动的都是一些模块的东西,并不涉及损失。报错具体内容如下
Traceback (most recent call last):
File "train_vit_v1_2.py", line 173, in <module>
loss.backward()
File "/home/abc/anaconda3/lib/python3.7/site-packages/torch/tensor.py", line 195, in backward
torch.autograd.backward(self, gradient, retain_graph, create_graph)
File "/home/abc/anaconda3/lib/python3.7/site-packages/torch/autograd/__init__.py", line 99, in backward
allow_unreachable=True) # allow_unreachable flag
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_SUPPORTED. This error may appear if you passed in a non-contiguous input.
解决方法探索
1、(无效)调小batchSize
百度搜索了一下,发现不少博客都是说,batchSize太大了,调小,问题就解决了。但是我尝试了很多遍,batchSize都调到1,都没用。
2、(有效)换环境
换了一个高效的搜索引擎,链接是git上pytorch库的issue的,内容如下
里面有一个哥们是这么回答的
这个时候,我受到了启发,是不是有可能是环境问题,所以我使用conda切换了一下环境,发现问题就解决了
最后我能运行的环境如下
python3.6
pytorch 1.7.0 py3.6_cuda10.1.243_cudnn7.6.3_0
3、排查问题思路
最后我总结了一下解决这种神奇问题的思路,分两步走
a、排查是否环境问题 换个环境
b、排查是否因为修改导致的问题 试下原来的版本能否正常运行(凸显版本管理的优势!建议迭代代码版本管理要做好,不然有时候出bug要回滚,如果没用git,也没保留原来文件,那么会很让人崩溃。)
原创不容易,如果对你有所帮助,请赏一键三连!
你是一个可以影响我的人!你的认可是我创作的动力,非常感谢!
有问题,欢迎随时交流探讨!