正常可运行的代码,突然出现bug:

  File "D:\ProgramFiles\Anaconda\lib\site-packages\torch\tensor.py", line 221, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "D:\ProgramFiles\Anaconda\lib\site-packages\torch\autograd\__init__.py", line 130, in backward
    Variable._execution_engine.run_backward(
RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

上网搜了一下,CSDN有博客的评论中说batch_size太大了,改小一点就好了。然而,暂时性解决了问题,已经改小的batch_size在实验多次训练时,出现了同样的问题。

解决方法:
在代码前加上torch.backends.cudnn.enabled = False

print(torch.version.cuda)
print(torch.backends.cudnn.version())
根据所使用的设备、cudnn 版本以及卷积参数,如果无法从 cudnn 中找到有效算法(而不是CUDNN_NOT_SUPPORTED错误或类似错误),您现在可能会看到此错误。

你在用torch.backends.cudnn.benchmark = True吗?
如果没有,您可以尝试激活它以使用 cudnn 启发式并可能查询更多算法。

如果没有帮助,你就必须通过经禁用cudnn回落到本地实现:torch.backends.cudnn.enabled = False。

详情点这里:https://discuss.pytorch.org/t/unable-to-find-a-valid-cudnn-algorithm-to-run-convolution/78724

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐