2017-02-01 150 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