即使安装了路径变量集,Tensorflow 也找不到“cudart64_90.dll”
Posted
技术标签:
【中文标题】即使安装了路径变量集,Tensorflow 也找不到“cudart64_90.dll”【英文标题】:Tensorflow can't find "cudart64_90.dll" even though it is installed with Path variable set 【发布时间】:2018-12-09 06:02:53 【问题描述】:我安装了 CUDA 9.0,因为没有它,Tensorflow 会报错:
ImportError:找不到“cudart64_90.dll”。 TensorFlow 要求将此 DLL 安装在以 %PATH% 环境变量命名的目录中。
我将路径变量设置为 CUDA 9.0 安装的 bin 目录,其中存在所需的 DLL 文件。我也尝试将其设置为其父目录。但它仍然给我同样的错误。
【问题讨论】:
那个文件存在吗? 绝对是的。我仔细检查了。 似乎在同一系统上安装了两个版本的 CUDA,并且可能存在版本/名称冲突,这可能会混淆内部使用的 loadlibrary 调用。您可以删除其他路径并重试吗? IDK... 在导入 tensorflow 之前尝试在脚本中添加路径。os.environ["PATH"].append("path/to/CUDA/v9/bin")
@Gautam 我从 PATH 中删除了 v9.2,但它没有用。这应该没关系,因为根据这篇文章,同一系统上可以存在多个 CUDA 版本:devtalk.nvidia.com/default/topic/493290/…
【参考方案1】:
我找到了解决方案。这是一个很好的老建议 - “你试过把它关掉再打开吗?”
我重启了电脑,Tensorflow 找到了cudart64_90.dll
,但是现在找不到cudnn64_7.dll
。我正在提供解决我遇到的问题的步骤。
如果您安装了 Tensorflow GPU 版本,您很可能会遇到帖子中提到的问题。特别是如果您之前没有安装过 NVDIA 开发工具包。请按以下步骤操作:
1。安装 CUDA
从here 获取。 仅安装 Tensorflow 的 ImportError 中提到的版本。
ImportError:找不到“cudart64_90.dll”。 TensorFlow 要求将此 DLL 安装在以 %PATH% 环境变量命名的目录中。从以下 URL 下载并安装 CUDA 9.0:https://developer.nvidia.com/cuda-toolkit
它明确地告诉你版本号。最初,我安装了 CUDA 9.1 而不是 9.0,但它不起作用。 Windows 上的安装非常简单。运行 .exe,如果您已经安装了 NVIDIA Geforce 和其他软件包,请取消选中它们。
2。在 PATH 变量中包含 CUDA 路径
将它指向 tensorflow 安装的 bin 目录。 如果您不知道如何设置 PATH 变量,请检查 here。现在尝试导入 Tensorflow,如果仍然无法正常工作,请尝试重新启动系统。
现在你可能会遇到错误:
ImportError:找不到“cudnn64_7.dll”。 TensorFlow 要求将此 DLL 安装在以 %PATH% 环境变量命名的目录中。请注意,安装 cuDNN 与安装 CUDA 是一个单独的步骤,并且此 DLL 通常位于与 CUDA DLL 不同的目录中。您可以通过从以下 URL 下载 cuDNN 7 来安装必要的 DLL:https://developer.nvidia.com/cudnn
3。安装 cuDNN
再次,只安装错误中提到的版本。要获取安装程序,您需要有一个 NVIDIA 开发者帐户。如果您没有,请注册,它会将您定向到下载 cuDNN 的链接。选择与您的 CUDA 版本兼容的版本(在包名称中)。下载 zip 存档。将其提取到磁盘上的某个位置。
4。在 PATH 变量中包含 cuDNN 路径
类似于第二步。这一次,将其指向您提取的 cuDNN 存档中的 bin 目录。现在导入 TensorFlow。如果需要,重新启动系统。
它现在应该可以工作了。
【讨论】:
如果CUDA/CuDNN和PATH安装正常,只需要重启shell或者IDE,不需要重启电脑。 对于第 1 部分):如果您收到安装 CUDA 的建议并且其版本是 10.1、10.2 等,您将不会获得包含 cudart64_100.dll,而是会获得 cudart64_101.dll/cudart64_102 .dll 等。如果发生这种情况,请参阅此答案:***.com/a/58464975/5897324【参考方案2】:当我到达第 3 步时,我复制并粘贴了存档中的文件 如here
Copy <installpath>\cuda\bin\cudnn64_7.dll to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin.
Copy <installpath>\cuda\ include\cudnn.h to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include.
Copy <installpath>\cuda\lib\x64\cudnn.lib to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64.
【讨论】:
【参考方案3】:我也有几个小时遇到同样的问题。刚刚重启了我的电脑,解决了你遇到的问题,试试看吧。
【讨论】:
【参考方案4】:始终检查 cuda 版本,在这种情况下,您必须安装 cuda 版本 9.0,这将在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin 文件夹中创建 cudart64_90.dll 文件。
这肯定会奏效。
【讨论】:
以上是关于即使安装了路径变量集,Tensorflow 也找不到“cudart64_90.dll”的主要内容,如果未能解决你的问题,请参考以下文章
tensorflow 的数据集 API 返回的大小不是恒定的
在 Mac 上安装 Laravel 会抛出 laravel,即使在设置 PATH 后也找不到