Tensorflow 已加载运行时CuDNN库:7.1.2,但源代码是使用7.6.0编译的;Ubuntu 18.04
我试图在标题中解决这个问题:Tensorflow 已加载运行时CuDNN库:7.1.2,但源代码是使用7.6.0编译的;Ubuntu 18.04,tensorflow,tensorflow2.0,ubuntu-18.04,Tensorflow,Tensorflow2.0,Ubuntu 18.04,我试图在标题中解决这个问题: Loaded runtime CuDNN library: 7.1.2 but source was compiled with: 7.6.0. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version 我读过其他几篇文章(例如:) 这基本上告诉我,我的机器有CUDNN7.1.2,但
Loaded runtime CuDNN library: 7.1.2 but source was compiled with: 7.6.0. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version
我读过其他几篇文章(例如:)
这基本上告诉我,我的机器有CUDNN7.1.2,但我需要7.6.0。答案是下载并安装7.6*
唯一的问题是,我认为我是按照nvidia archive()上的说明来做的
如果我转到/usr/local/cuda/include
并读取cudnn.h
,它会显示
#if !defined(CUDNN_H_)
#define CUDNN_H_
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 4
目前,我已经安装了CUDA-10.0、10.1和10.2,并将.bashrc设置为10.0(尽管nvcc--version
说明我有CUDA 9.1--另一个我似乎无法解决的问题)
有什么建议吗?几天来我一直在努力解决这个问题,但运气不好
更新:
这是我的路径
export PATH=$PATH:/usr/local/cuda-10.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export CUDA_HOME=/usr/local/cuda
在此关闭之前,您是否可以建议正确的设置路径或查找旧cudnn?我遇到了一个非常类似的错误:
Loaded runtime CuDNN library: 7.1.4 but source was compiled with: 7.6.5. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library. If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.
并在我的ldconfig
中意外发现了一个旧的CuDNN:
$ sudo ldconfig -p | grep libcudnn
libcudnn.so.7 (libc6,x86-64) => /usr/local/cuda-9.0/lib64/libcudnn.so.7
libcudnn.so.7 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn.so.7
libcudnn.so (libc6,x86-64) => /usr/local/cuda-9.0/lib64/libcudnn.so
libcudnn.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn.so
cuda-9.0目录中的libcudnn.so.7
文件指向旧版本:
ls -alh /usr/local/cuda-9.0/lib64/libcudnn.so.7
lrwxrwxrwx 1 root root 17 Dec 16 2018 /usr/local/cuda-9.0/lib64/libcudnn.so.7 -> libcudnn.so.7.1.4
ls -alh /usr/lib/x86_64-linux-gnu/libcudnn.so.7
lrwxrwxrwx 1 root root 17 Oct 27 2019 /usr/lib/x86_64-linux-gnu/libcudnn.so.7 -> libcudnn.so.7.6.5
但我已针对较新版本编译了tensorflow:
ls -alh /usr/local/cuda-9.0/lib64/libcudnn.so.7
lrwxrwxrwx 1 root root 17 Dec 16 2018 /usr/local/cuda-9.0/lib64/libcudnn.so.7 -> libcudnn.so.7.1.4
ls -alh /usr/lib/x86_64-linux-gnu/libcudnn.so.7
lrwxrwxrwx 1 root root 17 Oct 27 2019 /usr/lib/x86_64-linux-gnu/libcudnn.so.7 -> libcudnn.so.7.6.5
由于ldconfig
使用/etc/ld.so.conf
确定在何处查找库(我猜与ld\u LIBRARY\u PATH
结合使用),我检查了它,它显示:
include /etc/ld.so.conf.d/*.conf
当我列出该目录中的文件时,我发现了问题文件并将其删除:
$ cat /etc/ld.so.conf.d/cuda9.conf
/usr/local/cuda-9.0/lib64
$ sudo rm /etc/ld.so.conf.d/cuda9.conf
之后,我重新运行
ldconfig
重新加载配置,然后一切正常,错误消失。您几乎肯定安装了多个CuDNN版本,解决方案是查找并删除它们,或者仔细设置路径,以便找到正确的版本。这是你的系统,只有你知道你做了什么以及在哪里可以找到东西。你的路径中的CUDA工具包版本可能与你的LD\u库路径中的版本不匹配@talonmies有没有找到旧CuDNN的建议?@hristoilev有没有找到正确路径的建议?我已在上面添加了我的当前路径。请使用ldd your_executable
查看指向所有共享库的路径。没有人知道您在系统上的安装位置-只有您自己知道,因此没有人可以告诉您正确的路径是什么。