ImportError: libcudnn.so.7: cannot open shared object file錯誤以及非root用戶安裝cudnn

關於ImportError: libcudnn.so.7: cannot open shared object file錯誤以及非root用戶安裝cudnn

使用 Tensorflow 的時候出現了錯誤Tensorflow:ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory

從報錯信息上來看,就是libcudnn.so.7文件沒有找到。

首先檢查是否是cuda的鏈接出現了錯誤,ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory解決

簡單來說,就是:

首先檢擦libcudnn.so.7文件是否存在,這個文件夾一般在usr/local文件夾下,可以使用命令:

ll /usr/local

查看自己的cuda信息,在服務器上一般都會有多個版本,但是會將cuda指向其中一個,這時候檢查各個文件夾(例如cuda-9.0, cuda-10.0等等)下的lib64文件夾下是否有libcudnn.so.7文件夾(例如,在/usr/local/cuda-9.0/lib64文件夾下找到了libcudnn.so.7,)記住這個文件夾,這時候需要在配置文件信息裏添加這個路徑,使用

vim .bashrc

打開文件 -> Esc -> i進入編輯模式,然後添加配置信息:

export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"

注意這裏的cuda-9.0要根據實際改變。(關於export命令,可見:環境變量設置export 命令詳解

但是!!! 我試了之後發現我的/usr/local/cuda-X/lib64下面並沒有這個libcudnn文件,我解決的方法是安裝自己的cudnn,(我是非root用戶),這裏介紹非root用戶如何安裝cudnn。(可以參考, Linux非root用戶如何優雅的安裝cuda和cudnn

首先,在官網找到下載:cuDNN Archive(或者是參考 下載歷史版本cudnn)注意這個網站需要註冊,然後下載的話記得還要做個survey,總之找到這個頁面:

然後找到你要使用的版本(注意與Cuda版本對應,可以使用nvcc -V看一下你的Cuda版本),然後點擊就可以下載了,當然也可以直接使用命令,但是往往會受到網速限制,注意下載之後是一個後綴名爲.solitairetheme8的文件,這個文件需要改名,如果是已經上傳到服務器,使用

cp XXXX.solitairetheme8` XXXX.tgz

命令改名,如果還是在windows下直接改成.tgz文件即可,然後再服務器中找個位置使用:

tar -xvfz XXXX.tgz

解壓即可,如果你比較"精細",那麼可以將這個文件夾移動到上面的cuda文件夾下,當然也可以直接在某個位置解壓。

最後一樣要改一改環境變量配置文件,例如:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LD_LIBRARY_PATH="/home/XXX...XXX/cudnn/cuda/lib64:$LD_LIBRARY_PATH"

注意按照自己的實際解壓位置改一下路徑。

然後我就可以用了,其實總結一下就是兩個步驟:

  • 首先檢測文件是否存在,環境變量中的鏈接路徑是否寫對
  • 如果沒有文件,則單獨安裝libcudnn包
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章