Google Colab 运行时错误:cuDNN 错误:CUDNN_STATUS_NOT_INITIALIZED

vpa*_*pap 5 python google-colaboratory

昨天和今天运行与过去几个月运行相同的 Python 笔记本,出现错误

/usr/local/lib/python3.6/dist-packages/torch/autograd/__init__.py in backward(tensors, grad_tensors, retain_graph, create_graph, grad_variables)
 97     Variable._execution_engine.run_backward(
 98         tensors, grad_tensors, retain_graph, create_graph,
 ---> 99         allow_unreachable=True)  # allow_unreachable flag
100 
101 

RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
Run Code Online (Sandbox Code Playgroud)

代码中此错误似乎是随机的点,因为它从尝试更改。从我搜索的内容来看,它看起来是一个兼容性问题。

另外,如果我重新运行单元格,我可能会收到另一个错误,即

/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py in __next__(self)
346         data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
347         if self._pin_memory:
--> 348             data = _utils.pin_memory.pin_memory(data)
349         return data
350 

/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/pin_memory.py in pin_memory(data)
 53         return type(data)(*(pin_memory(sample) for sample in data))
 54     elif isinstance(data, container_abcs.Sequence):
 ---> 55         return [pin_memory(sample) for sample in data]
 56     elif hasattr(data, "pin_memory"):
 57         return data.pin_memory()

 /usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/pin_memory.py in <listcomp>(.0)
 53         return type(data)(*(pin_memory(sample) for sample in data))
 54     elif isinstance(data, container_abcs.Sequence):
 ---> 55         return [pin_memory(sample) for sample in data]
 56     elif hasattr(data, "pin_memory"):
 57         return data.pin_memory()

 /usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils /pin_memory.py in pin_memory(data)
 45 def pin_memory(data):
 46     if isinstance(data, torch.Tensor):
 ---> 47         return data.pin_memory()
 48     elif isinstance(data, string_classes):
 49         return data

 RuntimeError: cuda runtime error (700) : an illegal memory access was encountered at /pytorch/aten/src/THC/THCCachingHostAllocator.cpp:278
Run Code Online (Sandbox Code Playgroud)

有没有其他人有同样的问题?有没有人解决,怎么解决?

vpa*_*pap 3

最后,我解决了这个问题。

  1. 在我的代码中的某个地方,我使用了CrossEntropyLoss带有ignore_index参数的函数作为ignore_index = my_ignore_index. 错误地,我将my_ignore_index = -1其作为值,它对于我的数据来说不是有效值;-1 从未出现在我的数据值中。更新正确解决了问题。这解决了“...发生非法内存访问...”错误。

  2. 我所做并帮助解决该问题的另一件事是使用更新版本的 anaconda3。这解决了CUDNN_STATUS_NOT_INITIALIZED错误。

我希望这有帮助。