【问题标题】:Tensorflow: ImportError: libcudnn.so.7: cannot open shared object file: No such file or directoryTensorflow:ImportError:libcudnn.so.7:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2018-12-03 19:05:04
【问题描述】:

我最近使用 pip 安装了 tensorflow-gpu。但是当我导入它时,它给出了以下错误:

ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory

我已经浏览了与此问题相关的所有 stackoverflow 答案,但没有一个对我有用。

libcudnn.so.7 存在于以下目录 /usr/local/cuda/lib64 和 /usr/local/cuda-9.0/lib64 中。

另外,我在 .bashrc 文件中添加了以下路径:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

请帮我解决这个问题

【问题讨论】:

  • @cdarke 是的,它存在于 /usr/local/cuda/lib64 和 /usr/local/cuda-9.0/lib64 中
  • 您的环境中 PATH 和 LD_LIBRARY_PATH 的实际值是多少?
  • @MatiasValdenegro 我已经在问题中提到了 PATH 和 LD_LIBRARY_PATH 的值。
  • 这些不是值,取决于您如何设置它们,我们需要在您的环境中设置的实际值,只需在终端中执行 echo $PATH 和 echo $LD_LIBRARY_PATH 即可。
  • 我想你可以看到 LD_LIBRARY_PATH 是怎么错的。

标签: python python-3.x tensorflow cudnn


【解决方案1】:

您以错误的方式设置 LD_LIBRARY_PATH,我建议您这样做(这是一种标准):

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

【讨论】:

  • 它仍然显示相同的错误。现在我的 LD_LIBRARY_PATH 是“/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:}”,路径是“/home/tpradhan/venvs/tensorflow/bin:/usr/local/cuda-9.0/bin:/home/ tpradhan/anaconda3/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/pycharmCE2017/bin:/usr /java/latest/bin:/opt/eclipse:/opt/ideaCE/bin:/opt/libreofice6.0/:/opt/ubin:/opt/ulibs/Qt5.6.2:/opt/pycharmCE2017/bin export LD_LIBRARY_PATH= /usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+::/home/tpradhan/.local/bin:/home/tpradhan/bin" .
  • @shivank01 你的 LD_LIBRARY_PATH 仍然是错误的,似乎你没有改变任何给定的输出。
  • 我根据你的回答改了。
  • @shivank01 究竟在哪个文件上?并且您在进行更改后是否重新启动了终端?
【解决方案2】:

您可能需要下载并安装 NVIDIA cuDNN。

https://developer.nvidia.com/rdp/cudnn-download下载 (如果您没有,您必须注册一个帐户才能下载)。运行时版本通常比开发者版本更稳定。

【讨论】:

  • 这个 url 给了我 403 - Forbidden
  • 嗨,如上所述,您需要注册一个免费帐户才能从该链接下载 CuDNN。
【解决方案3】:

重新安装 CudNN-7.0.5,(确保从下面的链接中选择正确的版本)为我解决了这个问题。 您需要登录到您的 Nvidia 开发者帐户才能访问该链接。 (如果您没有 Nvidia 帐户,直接创建一个);

https://developer.nvidia.com/rdp/cudnn-archive

CudNN 的安装说明; https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

但是我也遇到了如下错误;

已加载运行时 CuDNN 库:7.0.5,但源代码编译时使用:7.4.2。在 CuDNN 7.0 或更高版本的情况下,CuDNN 库主要和次要版本需要匹配或具有更高的次要版本。如果使用二进制安装,请升级您的 CuDNN 库。如果从源代码构建,请确保在运行时加载的库与编译配置期间指定的版本兼容。

因此,我不得不再次下载并安装正确的 CuDNN 版本,我使用上述错误消息中的信息并安装了 CuDNN 7.4.2,这修复了所有错误并且一切正常。

祝你好运!

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 您好,感谢您对我的回答进行审核。在查看了您的 cmets 后,我已经修改了答案。上面的链接现在不一定是这个问题的答案。但是,如果有同样问题的人可以按照我的建议解决问题,那就是重新安装包含适当文件并与安装的 cuda 版本兼容的正确 CuDNN 版本。
【解决方案4】:

在 .bashrc 文件中添加以下路径:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH


export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

【讨论】:

    【解决方案5】:

    FWIW 很感兴趣,我创建了一个 shell script,它在 Debian 中安装了不同的 CUDA 版本,可以轻松移植到 Ubuntu:

    【讨论】:

      【解决方案6】:

      原因是缺少一些库。 尝试安装

      sudo apt install libcudnn7
      

      【讨论】:

        猜你喜欢
        • 2017-09-03
        • 1970-01-01
        • 1970-01-01
        • 2015-04-12
        • 2018-11-26
        • 2019-11-27
        • 2020-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多