Tensorflow:ImportError:libcudnn.so.7:无法打开共享对象文件:没有这样的文件或目录

abithluo  于 2023-06-24  发布在  其他
关注(0)|答案(7)|浏览(143)

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

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

我已经看过了stackoverflow所有关于这个问题的答案,但没有一个对我有用。
libcudn.so.7存在于以下目录/usr/local/cuda/lib 64和/usr/local/cuda-9.0/lib 64中。
另外,我在.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}}

请帮我解决这个问题

mqkwyuun

mqkwyuun1#

你设置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
pdtvr36n

pdtvr36n2#

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

yquaqz18

yquaqz183#

重新安装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,这修复了所有错误,一切正常。
祝你好运!

hfsqlsce

hfsqlsce4#

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

ix0qys7i5#

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

myzjeezk

myzjeezk6#

我在Google Colab上安装MXNet时遇到了一个libcudnn.so.7错误。最终解决这个问题的是在其他一些步骤之后安装libcudinn7;这是我表演的主要部分我希望这能帮助其他像我一样在这种混乱中苦苦挣扎的人。
我的具体需求是在Google Colab中降级Cuda;在写这篇文章的时候,它附带了11.8,但MXNet只支持旧版本。我正在遵循这个教程:https://aconcaguasci.blogspot.com/2019/12/setting-up-cuda-100-for-mxnet-on-google.html
我遵循了其中的大部分,包括:

#Uninstall the current CUDA version
!apt-get --purge remove cuda nvidia* libnvidia-*
!dpkg -l | grep cuda- | awk '{print $2}' | xargs -n1 dpkg --purge
!apt-get remove cuda-*
!apt autoremove
!apt-get update
#Download CUDA 10.0
!wget  --no-clobber https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
#install CUDA kit dpkg
# Note: I piped yes to answer the config file prompt with installing new version
!yes | dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
!sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
!apt-get update
!apt-get install cuda-10-0
# Although I did not encounter a `libcurand.so.10` error yet, I still ran this part too:
#Solve libcurand.so.10 error
!wget --no-clobber http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
#-nc, --no-clobber: skip downloads that would download to existing files.
!apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
!apt-get update
    • 这里**是我可以pip install mxnet-cu100的点,它将在import mxnet as mx上失败,并显示"**OSError:libcudn.so.7:**无法打开共享对象文件:没有这样的文件或目录“”。

!find / -iname libcudnn只返回两个文件夹,/var/lib/dpkg/alternatives/libcudnn/etc/alternatives/libcudnn
1.* * 为我修复的步骤**:我在这里深入研究了NVIDIA cuDNN Archives,发现了以下说明:
例如,对于Cuda 9.0和cuDNN 7.4.1:

$ sudo apt-get install libcudnn7=7.4.1.5-1+cuda9.0 sudo apt-get install libcudnn7-devel=7.4.1.5-1+cuda9.0

我将Cuda版本cuda9.0替换为cuda10.0并运行:

!sudo apt-get install libcudnn7=7.4.1.5-1+cuda10.0

我没有/无法运行libcudinn7-devel,因为它是“无法定位包”
在此之后,我可以pip install mxnet-cu100==1.9.0(MXNet for Cuda 10.0)。当然,nvcc --version会报告Cuda 10.0。我终于能够运行import mxnet as mx而不会得到任何“无法打开共享对象文件:..."错误。I validated it成功使用:

import mxnet as mx
print(mx.context.num_gpus())
a = mx.nd.ones((2, 3), mx.gpu())
b = a * 2 + 1
print(b.asnumpy())

输出:

1
[[3. 3. 3.]
 [3. 3. 3.]]

我知道这是MXNet而不是TensorFlow,但这是一个libcudnn.so.7错误,我希望它能帮助其他遇到这个问题的人,至少是Google Colab。我最近找不到太多的支持,因此我遵循了我在顶部提到的教程。

qlckcl4x

qlckcl4x7#

原因是一些图书馆不见了。尝试安装

sudo apt install libcudnn7

相关问题