日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python无法使用1号gpu_详解tensorflow2.x版本无法调用gpu的一种解决方法

發布時間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python无法使用1号gpu_详解tensorflow2.x版本无法调用gpu的一种解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近學校給了一個服務器賬號用來訓練神經網絡使用,服務器本身配置是十路titan V,然后在上面裝了tensorflow2.2,對應的python版本是3.6.2,裝好之后用tf.test.is_gpu_available()查看是否能調用gpu,結果返回結果是false,具體如下:

這里tensorflow應該是檢測出了gpu,但是因為某些庫無法打開而導致tensorflow無法調用,返回了false,詳細查看錯誤信息可以看到一行:

可以看到上面幾個文件都順利打開了,但是最后一個libcudnn.so.7文件顯示無法打開,not such file or directory。懷疑是cuda有問題,服務器本身是裝的cuda10.1,跟tensorflow2.2應該是吻合的,但是一直無法調用,所以一開始我想重新安裝cuda,覆蓋掉服務器本來的cuda,下好安裝包之后,因為我不是管理員,沒有root權限,所以總是失敗。但是安裝過程中了解到系統的cuda安裝目錄,位于/usr/local/cuda下面,這個libcudnn.so.7應該是一個庫文件,那應該放在cuda的安裝目錄下面,具體地,在/usr/local/cuda/lib64下面,之前在我的windows本地機器安裝cuda時還要下載cudnn7.x,然后把文件拷貝到cuda對應的目錄下面,我懷疑lib64目錄下面的這個libcudnn.so.7文件有問題,因為在linux版本的cudnn中是可以看到libcudnn.so.7這個文件的。

于是,打開lib64目錄,查找是否有libcudnn.so.7這個文件,結果是沒有找到這個文件,這就很奇怪了,cuda10.1目錄下面竟然沒有cudnn的文件,我也沒有權限修改/usr/local,因此想到既然是少了這個文件,那是不是把對應的文件加載在別的目錄下,引導tensorflow去另一個我可以操作的目錄下找這個libcudnn.so.7文件,就可以解決問題呢?我帶著試驗性的心態wget下載cudnn,結果在命令行下無法下載cudnn,原因是cudnn下載需要登錄,而在命令行下就沒辦法下載。于是在本地機器上下載了linux版的cudnn,然后用scp命令把這個tar.gz文件發到服務器上,解壓出來可以看到~/cudnn/cuda/lib64下面有libcudnn.so.7。接下來就是添加環境變量,讓tensorflow不僅在/usr/local/cuda/lib64下找文件,還可以在我這個目錄下找,添加命令:

export PATH=$PATH:/usr/local/cuda-10.1/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.1/lib64

這幾行命令添加系統cuda的庫

然后添加:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/users/cudnn/cuda/lib64

export LIBRARY_PATH=$LIBRARY_PATH:/home/users/cudnn/cuda/lib64

這里的/home/users/cudnn/cuda/lib64視自己的libcudnn.so.7文件目錄而定,最后是更新:

source /etc/profile

如果tensorflow是按照在anaconda虛擬環境下的,在執行這幾條命令會自動退出虛擬環境。記得重新進入:

source activate 環境名

這時重新進入python,導入tensorflow,然后運行tf.test.is_gpu_available(),可以看到:

這時已經顯示成功打開了libcudnn.so.7文件,說明tf根據我提供的目錄成功找到了這個文件,在打開了這些庫文件后,最下面也返回了True:

還可以用另一個方法tf.config.list_physical_devices(‘GPU')查看當前可用gpu:

十塊gpu都顯示出來了。

注意,添加這幾條命令只在當前連接上有用,如果斷開了服務器連接再重新連接時,需要重新輸入這些命令。

這個方法只是作為一個參考,碰巧是在tensorflow2.2上這個libcudnn.so.7文件打不開,于是嘗試性地試了一下,結果成功了。其他機器上如果出現同類問題,采用這個方法不一定能解決,只是提供一個思路。在tensorflow2.1上,也同樣出現gpu無法調用的問題,但打印的錯誤信息不僅有libcudnn.so.7文件無法打開,還有其他幾個文件也打不開,這些文件基本都是lib開頭的,可以查看這些文件是否在cuda的lib64目錄下,如果找得到這些文件,那有可能是環境變量設錯了,可以試試上面那些命令:

export PATH=$PATH:/usr/local/cuda-10.1/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.1/lib64

如果找不到,那可以試試跟我一樣先把這些文件下載到機器上面,給系統添加環境變量到對應這些文件的目錄,引導tf去找。當然,這只是我一種猜測,tensorflow2.1和2.2用的應該都是cuda10.1,但是我不清楚為什么2.2只有一個文件無法打開,而2.1就有好幾個文件打不開,而在1.9版本上,由于1.9似乎用的不是10.1版本的cuda,其錯誤原因更多,這里要區分開。

到此這篇關于詳解tensorflow2.x版本無法調用gpu的一種解決方法的文章就介紹到這了,更多相關tensorflow2.x無法調用gpu內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

總結

以上是生活随笔為你收集整理的python无法使用1号gpu_详解tensorflow2.x版本无法调用gpu的一种解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。