【问题标题】:(Tensorflow-GPU) import tensorflow ImportError: Could not find 'cudnn64_7.dll'(Tensorflow-GPU) 导入 tensorflow ImportError: 找不到 'cudnn64_7.dll'
【发布时间】:2018-02-09 03:58:53
【问题描述】:

在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?

【问题讨论】:

标签: python tensorflow


【解决方案1】:

另外,我在安装TensorFlow 1.8 时遇到以下错误。我有 Anaconda 环境。

“ImportError: 找不到 'cudnn64_7.dll'”

但是在我为CUDA 9.0 安装Nvidia cuDNN v7.1.3(2018 年4 月17 日)之后,一切都开始工作了。 请注意,需要注册为 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 Toolkit 目录中。

    • <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 并按 Enter
    • 发出控制sysdm.cpl命令。
    • 选择窗口顶部的“高级”选项卡。
    • 点击窗口底部的环境变量。
    • 确保设置了以下值: 变量名:CUDA_PATH 变量值:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
  5. 在您的 Visual Studio 项目中包含 cudnn.lib。

    • 打开 Visual Studio 项目并在 project name 上打开 right-click
    • 点击Linker > Input > Additional Dependencies
    • 添加cudnn.lib并点击确定

【讨论】:

  • 在您的 Visual Studio 项目中包含 cudnn.lib。打开 Visual Studio 项目并右键单击项目名称。单击链接器 > 输入 > 附加依赖项。添加cudnn.lib并点击OK我不明白这一步怎么做,你能解释一下吗?
  • 我有一个奇怪的问题。每当我导入 Tensorflow 时,我都会收到此错误。但是当我将torch与tensorflow一起导入时,它可以毫无问题地打开同一个库。
【解决方案2】:

根据您之前的回答,您似乎发现预构建的 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

【讨论】:

    【解决方案3】:

    在我的情况下,我需要安装链接 here 的旧 cuDNN 库

    【讨论】:

    • 按照建议,我在这个 zip 下找到了文件:cudnn-10.2-windows10-x64-v7.6.5.32.zip。
    【解决方案4】:

    刚刚搞砸了解决方案:

    我检查了\tensorflow\python\platform\build_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'
    

    【讨论】:

    • 应用上述解决方案后,在尝试导入 tensorflow 时出现另一个错误。错误是:没有名为“_pywrap_tensorflow_internal”的模块。查明原因后,发现需要的cuDNN版本(即6.0)与CUDA 9.0不匹配,如tensorflow.org/install/install_windows所示。它应该是 CUDA 9.0 + cuDNN 7.0(不是 cuDNN 6.0)。
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 2018-08-30
    • 2018-07-22
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    相关资源
    最近更新 更多