昨天和今天运行与过去几个月运行的Python笔记本相同的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
其他人也有同样的问题吗?有人解决了吗?
答案 0 :(得分:1)
最后,我解决了这个问题。
在我的代码中的某些地方,我使用了一个CrossEntropyLoss函数,该函数的ignore_index参数为ignore_index = my_ignore_index。错误的是,我的my_ignore_index = -1作为值,它对于我的数据而言不是有效值; -1从不出现在我的数据值中。更新正确解决了该问题。这解决了“ ...非法内存访问被确保...”错误。
我做过并帮助解决的另一件事是使用了较新版本的anaconda3。这解决了“ CUDNN_STATUS_NOT_INITIALIZED”错误。
我希望有帮助。