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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

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

最近學(xué)校給了一個(gè)服務(wù)器賬號(hào)用來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)使用,服務(wù)器本身配置是十路titan V,然后在上面裝了tensorflow2.2,對(duì)應(yīng)的python版本是3.6.2,裝好之后用tf.test.is_gpu_available()查看是否能調(diào)用gpu,結(jié)果返回結(jié)果是false,具體如下:

這里tensorflow應(yīng)該是檢測(cè)出了gpu,但是因?yàn)槟承?kù)無(wú)法打開(kāi)而導(dǎo)致tensorflow無(wú)法調(diào)用,返回了false,詳細(xì)查看錯(cuò)誤信息可以看到一行:

可以看到上面幾個(gè)文件都順利打開(kāi)了,但是最后一個(gè)libcudnn.so.7文件顯示無(wú)法打開(kāi),not such file or directory。懷疑是cuda有問(wèn)題,服務(wù)器本身是裝的cuda10.1,跟tensorflow2.2應(yīng)該是吻合的,但是一直無(wú)法調(diào)用,所以一開(kāi)始我想重新安裝cuda,覆蓋掉服務(wù)器本來(lái)的cuda,下好安裝包之后,因?yàn)槲也皇枪芾韱T,沒(méi)有root權(quán)限,所以總是失敗。但是安裝過(guò)程中了解到系統(tǒng)的cuda安裝目錄,位于/usr/local/cuda下面,這個(gè)libcudnn.so.7應(yīng)該是一個(gè)庫(kù)文件,那應(yīng)該放在cuda的安裝目錄下面,具體地,在/usr/local/cuda/lib64下面,之前在我的windows本地機(jī)器安裝cuda時(shí)還要下載cudnn7.x,然后把文件拷貝到cuda對(duì)應(yīng)的目錄下面,我懷疑lib64目錄下面的這個(gè)libcudnn.so.7文件有問(wèn)題,因?yàn)樵趌inux版本的cudnn中是可以看到libcudnn.so.7這個(gè)文件的。

于是,打開(kāi)lib64目錄,查找是否有l(wèi)ibcudnn.so.7這個(gè)文件,結(jié)果是沒(méi)有找到這個(gè)文件,這就很奇怪了,cuda10.1目錄下面竟然沒(méi)有cudnn的文件,我也沒(méi)有權(quán)限修改/usr/local,因此想到既然是少了這個(gè)文件,那是不是把對(duì)應(yīng)的文件加載在別的目錄下,引導(dǎo)tensorflow去另一個(gè)我可以操作的目錄下找這個(gè)libcudnn.so.7文件,就可以解決問(wèn)題呢?我?guī)е囼?yàn)性的心態(tài)wget下載cudnn,結(jié)果在命令行下無(wú)法下載cudnn,原因是cudnn下載需要登錄,而在命令行下就沒(méi)辦法下載。于是在本地機(jī)器上下載了linux版的cudnn,然后用scp命令把這個(gè)tar.gz文件發(fā)到服務(wù)器上,解壓出來(lái)可以看到~/cudnn/cuda/lib64下面有l(wèi)ibcudnn.so.7。接下來(lái)就是添加環(huán)境變量,讓tensorflow不僅在/usr/local/cuda/lib64下找文件,還可以在我這個(gè)目錄下找,添加命令:

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

這幾行命令添加系統(tǒng)cuda的庫(kù)

然后添加:

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虛擬環(huán)境下的,在執(zhí)行這幾條命令會(huì)自動(dòng)退出虛擬環(huán)境。記得重新進(jìn)入:

source activate 環(huán)境名

這時(shí)重新進(jìn)入python,導(dǎo)入tensorflow,然后運(yùn)行tf.test.is_gpu_available(),可以看到:

這時(shí)已經(jīng)顯示成功打開(kāi)了libcudnn.so.7文件,說(shuō)明tf根據(jù)我提供的目錄成功找到了這個(gè)文件,在打開(kāi)了這些庫(kù)文件后,最下面也返回了True:

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

十塊gpu都顯示出來(lái)了。

注意,添加這幾條命令只在當(dāng)前連接上有用,如果斷開(kāi)了服務(wù)器連接再重新連接時(shí),需要重新輸入這些命令。

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

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

如果找不到,那可以試試跟我一樣先把這些文件下載到機(jī)器上面,給系統(tǒng)添加環(huán)境變量到對(duì)應(yīng)這些文件的目錄,引導(dǎo)tf去找。當(dāng)然,這只是我一種猜測(cè),tensorflow2.1和2.2用的應(yīng)該都是cuda10.1,但是我不清楚為什么2.2只有一個(gè)文件無(wú)法打開(kāi),而2.1就有好幾個(gè)文件打不開(kāi),而在1.9版本上,由于1.9似乎用的不是10.1版本的cuda,其錯(cuò)誤原因更多,這里要區(qū)分開(kāi)。

到此這篇關(guān)于詳解tensorflow2.x版本無(wú)法調(diào)用gpu的一種解決方法的文章就介紹到這了,更多相關(guān)tensorflow2.x無(wú)法調(diào)用gpu內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。