(Tensorflow GPU)导入Tensorflow ImportError:找不到“cudnn64_7.dll”

2024-04-27 13:25:00 发布

您现在位置:Python中文网/ 问答频道 /正文

在anaconda下创建tensorflow环境后,我安装了tensorflow gpu。然后我试图导入tensorflow以验证它是否正确安装,但出现以下错误:

ImportError: Could not find 'cudnn64_7.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Note that installing cuDNN is a separate step from installing CUDA, and this DLL is often found in a different directory from the CUDA DLLs. You may install the necessary DLL by downloading cuDNN 7 from this URL: https://developer.nvidia.com/cudnn

设置为:

NVIDIA GTX 1080
CUDA 9.0
cuDNN 6.0
tensorflow-gpu 1.5

环境变量包括:

CUDA_PAT: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
CUDA_PATH_V9_0: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

%Path%变量是:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp
C:\Users\yshen\AppData\Local\cudnn-8.0-windows10-x64-v6.0\cuda\bin

很明显,我安装了cuDNN6.0,而不是为什么错误显示“找不到'cudnn64_7.dll'”。为什么它会自动搜索cudnn64_7.dll而不是cudnn64_6.dll?


Tags: inthatgpuistensorflowfilesthisprogram
3条回答

根据您之前的回答,您似乎发现预先构建的tensorflow gpu 1.5与CUDA 9.0+CudNN 6.0不兼容。如果您想使用tensorflow gpu 1.5,有两种可能的解决方案:

1、升级CUDA工具链至CUDA 9.0+Cudnn 7.0(CUDA 9.0目前为Cudnn 7.0.5)。

2、为CUDA 9.0+cudnn 6.0重新编译tensorflow gpu 1.5目标。

为了方便起见,我建议选择第一个选项。但tensorflow 1.5的官方网页并未否认选择2的可能性: https://github.com/tensorflow/tensorflow/releases/tag/v1.5.0

另外,我在安装TensorFlow 1.8时出现以下错误。我有水蟒的环境。

"ImportError: Could not find 'cudnn64_7.dll'"

但在我安装了Nvidia cuDNN v7.1.3(2018年4月17日)之后,对于CUDA 9.0,一切都开始工作了。 请注意,需要注册为Nvidia开发人员才能下载安装包。

然后,按照页面中的说明操作:cudnn-install

对于Windows:

3.3条。在Windows上安装cuDNN

以下步骤描述如何构建依赖于cuDNN的程序。在以下部分中:

-CUDA目录路径称为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

-cuDNN目录路径称为<installpath>

  1. 导航到包含cuDNN<installpath>目录。

  2. 解压缩cuDNN包。-cudnn-9.0-windows7-x64-v7.zip-cudnn-9.0-windows10-x64-v7.zip

  3. 将以下文件复制到CUDA工具包目录中。

    • <installpath>\cuda\bin\cudnn64_7.dll复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
    • <installpath>\cuda\ include\cudnn.h复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
    • <installpath>\cuda\lib\x64\cudnn.lib复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
  4. 将以下环境变量设置为指向cuDNN所在的位置。要访问$(CUDA_PATH)环境变量的值,请执行以下步骤:

    • 从“开始”菜单打开命令提示符。
    • 键入Run并按回车键。
    • 发出controlsysdm.cpl命令。
    • 选择窗口顶部的“高级”选项卡。
    • 单击窗口底部的“环境变量”。
    • 确保设置了以下值: 变量名:CUDA_PATH 变量值:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
  5. 在Visual Studio项目中包含cudnn.lib。

    • 打开Visual Studio项目并在project nameright-click
    • 单击Linker > Input > Additional Dependencies
    • 添加cudnn.lib,然后单击“确定”。

只是找到了解决办法:

我检查了\tensorflow\python\platform\build\u info.py,发现:

msvcp_dll_name = 'msvcp140.dll'
cudart_dll_name = 'cudart64_90.dll'
cuda_version_number = '9.0'
nvcuda_dll_name = 'nvcuda.dll'
cudnn_dll_name = 'cudnn64_7.dll'
cudnn_version_number = '7'

它假设cudnn版本是7。所以只要纠正一下:

cudnn_dll_name = 'cudnn64_6.dll'
cudnn_version_number = '6'

相关问题 更多 >