pytorch無(wú)法使用GPU問(wèn)題的解決方法
本教程介紹了如何解決pytorch 無(wú)法使用GPU 的問(wèn)題,
問(wèn)題描述:
之前我電腦已經(jīng)安裝好CUDA 10.1 的環(huán)境,驅(qū)動(dòng)也是安裝好的,安裝了tensorflow-gpu ,并且可以正常使用tensorflow gpu 版來(lái)訓(xùn)練。今天有同學(xué)問(wèn)我一些pytorch 的安裝問(wèn)題,我之前沒(méi)有安裝過(guò),所以實(shí)踐了一下,安裝過(guò)程很順利,找到官方網(wǎng)站,找到安裝的地方,復(fù)制命令,使用anconda 進(jìn)行了安裝:
安裝完成之后,我迫不及待的測(cè)試了一下是否安裝成功和能否使用GPU:
import torch print(torch.cuda.is_available())
結(jié)果返回的結(jié)果是False,也就是不可以使用GPU版本的pytorch,這讓人很煩。
問(wèn)題解決思路
根據(jù)以往tensorflow安裝時(shí)候的問(wèn)題解決思路,我猜測(cè)可能是cuda版本和pytorch 的版本對(duì)不上,我仔細(xì)對(duì)照了半天,發(fā)現(xiàn)不是這里的問(wèn)題。所以問(wèn)題可能出在cuda 和 顯卡驅(qū)動(dòng)上面。
我輸入命令:nvidia-smi,正常的話會(huì)輸出顯卡驅(qū)動(dòng)的相關(guān)信息,但是這里報(bào)錯(cuò)了,報(bào)錯(cuò)信息為:
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
顯卡驅(qū)動(dòng)出問(wèn)題了? 那重裝一下驅(qū)動(dòng)應(yīng)該就可以解決問(wèn)題,但是在ubuntu上安裝驅(qū)動(dòng)有點(diǎn)繁瑣,所以我又測(cè)試了一下tensorflow-gpu 版本是否可以使用,輸入一下代碼:
import tensorflow as tf
發(fā)現(xiàn)竟然沒(méi)有報(bào)錯(cuò),陷入僵局了,這一句話沒(méi)報(bào)錯(cuò)驅(qū)動(dòng)應(yīng)該沒(méi)問(wèn)題啊,我開(kāi)始查找問(wèn)題的答案,百度搜索了一下這個(gè)報(bào)錯(cuò):NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
最終得出的結(jié)論是就是顯卡驅(qū)動(dòng)壞了,我參考網(wǎng)上的解決辦法,執(zhí)行了以下命令,成功的解決了問(wèn)題。
首先安裝 dkms
sudo apt-get install dkms
然后查看自己驅(qū)動(dòng)的版本
ls /usr/local
輸出結(jié)果如下:
執(zhí)行以下命令:
sudo dkms install -m nvidia -v 418.43
注意命令后的版本要和上圖中的版本一致!
驗(yàn)證是否生效
nvidia-smi 命令執(zhí)行正常了。
驗(yàn)證pytorch:
問(wèn)題成功解決了
后記
剛剛提到了一個(gè)奇怪的現(xiàn)象,顯卡驅(qū)動(dòng)不正常,tensorflow-gpu 竟然可以成功的import,但是后來(lái)經(jīng)過(guò)測(cè)試發(fā)現(xiàn),雖然沒(méi)有報(bào)錯(cuò),但是訓(xùn)練過(guò)程使用了CPU,沒(méi)有使用GPU,運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò)說(shuō) GPU驅(qū)動(dòng)沒(méi)有運(yùn)行之類的錯(cuò)誤,然后使用CPU進(jìn)行了訓(xùn)練(直觀感覺(jué)就是慢了很多)。
為什么會(huì)出現(xiàn)顯卡驅(qū)動(dòng)壞了的情況?猜測(cè)是系統(tǒng)更新造成的,因?yàn)橹拔沂褂胻ensorflow-gpu的時(shí)候是正常的,并且沒(méi)有做任何的改動(dòng),所以很有可能是更新造成的損壞。
以上就是pytorch無(wú)法使用GPU問(wèn)題的解決方法的詳細(xì)內(nèi)容,更多關(guān)于pytorch無(wú)法使用GPU的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲
這篇文章主要介紹了Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Python進(jìn)行有限元仿真的使用及創(chuàng)建
這篇文章主要為大家介紹了Python進(jìn)行有限元仿真的創(chuàng)建及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10使用Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲功能
這篇文章主要介紹了使用Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10python調(diào)用API接口實(shí)現(xiàn)登陸短信驗(yàn)證
在本篇文章里小編給大家整理的是關(guān)于python調(diào)用API接口實(shí)現(xiàn)登陸短信驗(yàn)證的實(shí)例內(nèi)容,需要的朋友們可以參考下。2020-05-05python基于mysql實(shí)現(xiàn)的簡(jiǎn)單隊(duì)列以及跨進(jìn)程鎖實(shí)例詳解
這篇文章主要介紹了python基于mysql實(shí)現(xiàn)的簡(jiǎn)單隊(duì)列以及跨進(jìn)程鎖,需要的朋友可以參考下2014-07-07Python編程scoketServer實(shí)現(xiàn)多線程同步實(shí)例代碼
這篇文章主要介紹了Python編程scoketServer實(shí)現(xiàn)多線程同步實(shí)例代碼,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python統(tǒng)計(jì)文件中去重后uuid個(gè)數(shù)的方法
這篇文章主要介紹了Python統(tǒng)計(jì)文件中去重后uuid個(gè)數(shù)的方法,實(shí)例分析了Python正則匹配及字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-07-07