2017-02-01 152 views

回答

2

您可能没有安装cuDNN的正确版本。

要确定cuDNN的正确版本,请参阅NVIDIA要求在支持GPU的情况下运行TensorFlow。

+1

即使CUDA(8.0)和cudnn(5.1)的正确版本,这个错误使用PIP从https安装方法时,仍然发生://www.tensorflow.org/install/install_linux#installing_with_native_pip – mstreffo

6

此时Tensorflow不支持cuDNN 6.如果你的错误是它找不到libcudnn.so.5,而你只安装了cuDNN 6,它提供了libcudnn.so.6,你需要安装cuDNN 5,直到引入cuDNN 6支持。有一个open bug report,您可以在Tensorflow Github页面上查看它们何时开始支持cuDNN 6.

+0

我不确定要安装哪一个,所以我只是跟5.1一起去,因为这就是文档所说的。 Buuut的文档也表示使用cuda 7.x.当有太多版本的东西时,很难建立这些环境,并且文档有轻微的错误! http://developer2.download.nvidia.com/compute/machine-learning/cudnn/secure/v5.1/prod/doc/cudnn_install.txt?F3FJdd7MWqtI7nGkyMVGrQTBf7x4TpOQKPwjNxyLlD5Jm6wFHZvYyj6XLd47Vy0yxeGMLfH4CiaIPyQQk-FiC2gIB3y16u4Lc-4Vlh1CHgkCseXk76Z9AdsxYDiRmSlrrlbAgmx8lw6yy8hFhkSOmNd0U5zMiZ8HDZH_x7F34QLM2lWE。 –

+0

我只是将所需的版本文件添加到安装路径并且它可以工作。直到他们支持cudnn 6这是我发现的最好的方法 –

+0

@ user2918461你的链接已经死了/ – NightFantom

2

确保$LD_LIBRARY_PATH环境变量设置为正确的路径。

cuDNN Install Guide

所有平台

Extract the cuDNN archive to a directory of your choice, referred to below as <installpath>. 
Then follow the platform-specific instructions as follows. 

LINUX

cd <installpath> 
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH 

Add <installpath> to your build and link process by adding -I<installpath> to your compile 
line and -L<installpath> -lcudnn to your link line. 

OS X

cd <installpath> 
export DYLD_LIBRARY_PATH=`pwd`:$DYLD_LIBRARY_PATH 

Add <installpath> to your build and link process by adding -I<installpath> to your compile 
line and -L<installpath> -lcudnn to your link line. 

WINDOWS

Add <installpath> to the PATH environment variable. 

In your Visual Studio project properties, add <installpath> to the Include Directories 
and Library Directories lists and add cudnn.lib to Linker->Input->Additional Dependencies. 
+1

我必须将LD_LIBRARY_PATH设置为/lib64。我将cudnn安装到/ opt/cuda。在这个目录中有两个文件夹,include和lib64。如果我设置LD_LIBRARY_PATH =“/ opt/cuda”:$ LD_LIBRARY_PATH我得到了这个问题中指出的错误。 –

4

我遇到了这个问题。在我的情况下,我的日食给了这个错误,但是在终端中张量流畅地运行。 因此,在cuDNN安装或粘贴/usr/local/cuda/lib64/usr/local/cuda/include中与cudNN相关的文件后,我发现命令sudo ldconfig -v也必须在终端中执行。

之后,它应该工作。

这是假设一个已经设置以下环境变量按照通过NVIDIA的CUDA安装过程的规范:LD_LIBRARY_PATHPATHCUDA_HOME

+0

尝试其他一切后,这终于为我工作。谢谢! –

30

只需download cuDNN 5.1,然后按照步骤(测试在Ubuntu 16.04,CUDA工具包8.0)

$ tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz 
$ sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include 
$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* 

现在设置路径变量

$ vim ~/.bashrc 

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" 
export CUDA_HOME=/usr/local/cuda 

,做

欲了解更多详情,您可以检查此site

+0

尽管TensorFlow指令显式声明“确保您创建NVIDIA文档中所述的CUDA_HOME环境变量”。这一步很容易失败。如上所述,通过@ankit执行,所有将会膨胀。 在继续之前,不要忘记用'source〜/ .bashrc'重新加载新添加的env vars。 – Stacky

+0

@empty从[这里]下载(https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v5.1/prod_20161129/8.0/cudnn-8.0-linux-x64-v5.1-tgz ) –

+6

该解决方案需要适应当前TensorFlow预期的cuDNN版本。截至2017年11月31日,它需要cuDNN 6.带有“导入张量流”的错误消息将指示所需的版本。例如,“ImportError:libcudnn.so.6:无法打开共享对象文件:没有这样的文件或目录”表示它期望libcudnn.so.6 –

1

我能够改变从cudNN 6.0我cudNN安装cudNN 5.1来解决问题。 cudNN 6.0具有文件libcudnn.so.6,而cudNN 5.1具有文件libcudnn.so.5。

10

看来TensorFlow现在支持cudNN 6.0。我用cudNN 5.1得到错误。

使用TensorFlow版本1。3.0。

如果您收到

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

尝试使用6.0

+0

正确!这是张量流安装指南中的一个错误(他们应该将推荐的cudnn更新为6,因为它不适用于5.1)。我浪费了好几个小时。 – ezfn