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

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

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

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

我已经阅读了与此问题相关的所有 Whosebug 答案,但其中 none 对我有用。

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}}

请帮我解决这个问题

您设置 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

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

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

您在 .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

重新安装 CudNN-7.0.5,(确保您从下面的 link 中选择正确的版本)为我解决了这个问题。 您需要登录您的 Nvidia 开发者帐户才能访问 link。 (如果您没有 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,这修复了所有错误并且一切正常。

祝你好运!

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

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

sudo apt install libcudnn7