Python Tensorflow:ImportError:libcudnn.so.7:无法打开共享对象文件:没有此类文件或目录

Python Tensorflow:ImportError:libcudnn.so.7:无法打开共享对象文件:没有此类文件或目录,python,python-3.x,tensorflow,cudnn,Python,Python 3.x,Tensorflow,Cudnn,我最近使用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中 此外,我还在.ba

我最近使用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}}
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

请帮助我解决这个问题。

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


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

从下载
(如果没有,您必须注册一个帐户才能下载)。运行时版本通常比开发人员版本更稳定。

您可以在.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}}
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(确保从下面的链接中选择正确的版本)为我修复了此问题。 您需要登录到您的Nvidia开发者帐户才能访问该链接。(如果您没有Nvidia帐户,则直接创建一个帐户)

CudNN的安装说明;

但我也遇到了以下错误:

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

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


祝你好运

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

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

sudo apt安装libcudnn7

@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_路径是如何错误的。它仍然显示相同的错误。现在我的LD_库路径是“/usr/local/cuda/lib64${LD_库路径:+:}”,路径是"/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/local/sbin:/usr/sbin:/opt/pycharmCE2017/bin:/usr/java/opt/latest/bin:/eclipse:/opt/ideaCE/bin:/opt/libreoice6.0/://ubin:/opt/ulibs/Qt5.6.2:/pycharmCE2017/bin/exportLD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+::/home/tpradhan/.local/bin:/home/tpradhan/bin".@shivank01您的LD_LIBRARY_路径仍然错误,似乎您没有根据输出更改任何内容。我已根据您的回答进行了更改。@shivank01具体在哪个文件上?您在进行更改后是否重新启动了终端?此url为我提供403-禁止Hi,如上所述,您需要注册一个免费帐户才能下载CuDNN来自该链接。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能会无效。-您好,感谢对我答案的审阅。在审阅您的评论后,我已修改了答案。以上链接现在不一定是这个问题的答案。但是,如果有人有相同的问题,可以按照我的建议解决这个问题,即重新安装正确的CuDNN版本,该版本包含适当的文件,并且与安装的cuda版本兼容。