Python Google Colab运行时错误:cuDNN错误:cuDNN\u状态\u未初始化

Python Google Colab运行时错误:cuDNN错误:cuDNN\u状态\u未初始化,python,google-colaboratory,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 tensor

昨天和今天运行的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
代码中此错误似乎是随机的,因为它在一次又一次的尝试中发生变化。从我搜索的内容来看,这似乎是一个兼容性问题

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

/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
/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py in(self)
346 data=self._dataset_fetcher.fetch(index)#可能引发停止迭代
347如果自。_引脚_存储器:
-->348数据=_utils.pin_内存。pin_内存(数据)
349返回数据
350
/usr/local/lib/python3.6/dist-packages/torch/utils/data//u utils/pin\u memory.py in pin\u内存(数据)
53返回类型(数据)(*(数据中样本的引脚_存储器(样本))
54 elif isinstance(数据、容器和abcs.序列):
--->55返回[数据中样本的引脚_存储器(样本)]
56 elif hasattr(数据,“引脚存储器”):
57返回数据。pin_存储器()
/usr/local/lib/python3.6/dist-packages/torch/utils/data//u utils/pin\u memory.py in(.0)
53返回类型(数据)(*(数据中样本的引脚_存储器(样本))
54 elif isinstance(数据、容器和abcs.序列):
--->55返回[数据中样本的引脚_存储器(样本)]
56 elif hasattr(数据,“引脚存储器”):
57返回数据。pin_存储器()
/usr/local/lib/python3.6/dist-packages/torch/utils/data//u utils/pin\u memory.py in pin\u内存(数据)
45 def pin_存储器(数据):
46如果存在(数据、火炬张量):
--->47返回数据。pin_内存()
48 elif isinstance(数据、字符串类):
49返回数据
RuntimeError:cuda运行时错误(700):在/pytorch/aten/src/THC/THCCachingHostAllocator.cpp:278处遇到非法内存访问

其他人也有同样的问题吗?有人解决了吗,怎么解决的?

最后,我解决了这个问题

  • 在代码中的某个地方,我使用了一个
    CrossEntropyLoss
    函数,其ignore\u index参数为
    ignore\u index=my\u ignore\u index
    。错误地,我将
    my_ignore_index=-1
    作为值,它不是我数据的有效值-1从未出现在我的数据值中。更新正确地解决了这个问题。这解决了“…非法内存访问被加密…”错误

  • 我做的另一件事是使用了更新版本的anaconda3,帮助解决了这个问题。这解决了
    CUDNN\u STATUS\u NOT\u INITIALIZED
    错误


  • 我希望这会有所帮助。

    你能分享一个复制问题的独立笔记本吗?