pytorch bug: Unable to find a valid cuDNN algorithm to run convolution

正常可运行的代码,突然出现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

  • 17
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: 这个错误通常出现在使用深度学习框架TensorFlow时,它要求CUDA和cuDNN的版本与TensorFlow版本兼容。这种情况通常发生在以下两种情况下: 1. 没有正确安装CUDA和cuDNN。 2. 安装了不兼容的版本。 解决这个问题的步骤如下: 1. 确保已经正确安装了CUDA和cuDNN,并且它们的版本与TensorFlow的要求相匹配。在安装之前,请查看TensorFlow的文档以了解所需的版本。 2. 如果已经安装了正确版本的CUDA和cuDNN,请确保它们的路径已经被添加到环境变量中。可以通过在终端中运行以下命令来测试是否正确安装和配置了CUDA和cuDNN: nvcc --version nvcc --list-codes nvcc --list-cudnn 3. 如果以上两个步骤都正确,还是无法解决问题,那么可以尝试重新安装CUDA和cuDNN,并确保安装了与TensorFlow兼容的版本。 希望这些步骤能够帮助你解决这个问题! ### 回答2: "Unable to find a valid cudnn"是一个常见的错误信息,它通常与使用深度学习库如TensorFlow或PyTorch时出现的。这个错误信息表示找不到有效的cudnn(CUDA深度神经网络库)。 这个错误信息通常是由以下原因导致的: 1. 找不到cudnn库:这通常是由于未正确安装cuda或cudnn导致的。在使用深度学习库之前,必须先在系统中安装cuda和cudnn,并在代码中正确设置它们的路径。确保cuda和cudnn的版本兼容,并按照安装指南进行正确安装。 2. 版本兼容性问题:深度学习库和cudnn需要相互配合才能正常工作。如果您安装了与深度学习库不兼容的cudnn版本,则会出现“无法找到有效的cudnn”的错误。确保在安装深度学习库之前查看其要求的cudnn版本,并安装与其兼容的cudnn版本。 3. 环境变量设置错误:cudnn需要在环境变量中设置正确的路径才能正常工作。如果环境变量不正确,则会出现“无法找到有效的cudnn”的错误。请确保在安装cudnn深度学习库之后,将其路径添加到系统环境变量中。 总之,如果遇到“无法找到有效的cudnn”的错误,应该检查是否正确安装了cuda和cudnn,并按正确方式设置了环境变量和文件路径。如果仍然无法解决问题,则需要查看日志和文档以找出更具体的解决方法。 ### 回答3: 在深度学习中使用GPU加速训练时,cudnn是一个非常重要的库。但是有时候会遇到无法找到有效的cudnn a的问题。这可能是由于以下几个原因引起的: 1. 未正确安装cudnn库。在使用Nvidia GPU进行深度学习训练时,必须先安装cudnn库。如果cudnn库未正确安装,则会出现“unable to find a valid cudnn a”的错误。 2. cudnn版本与CUDA版本不匹配。cudnn库被设计用于与特定版本的CUDA一起使用。如果cudnn版本与CUDA版本不匹配,则可能导致“unable to find a valid cudnn a”的错误。 3. CUDA版本过旧。如果CUDA版本太旧,则cudnn库可能无法正常工作。这通常是由于使用了旧版Nvidia驱动程序或不支持CUDA和cudnn的GPU。 要解决“unable to find a valid cudnn a”的问题,可以尝试以下步骤: 1. 确认已正确安装cudnn库。可以从Nvidia的官方网站上下载最新版本的cudnn库,并按照安装指南正确安装。 2. 确认cudnn版本与CUDA版本匹配。检查安装的CUDA版本,并确保安装的cudnn版本适用于该CUDA版本。 3. 更新CUDA版本和Nvidia驱动程序。如果CUDA版本过旧,则需要升级到最新版本的CUDA和最新版本的Nvidia驱动程序。 4. 检查CUDA和cudnn是否兼容。在Nvidia的官方网站上查找有关CUDA和cudnn兼容性的信息,以确保正在使用的版本是兼容的。 总之,“unable to find a valid cudnn a”的错误通常是由于cudnn库未正确安装或与CUDA版本不匹配而引起的。通过按照上述步骤检查和更新软件版本,应该能够解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值