pytorch無法使用GPU問題的解決方法
本教程介紹了如何解決pytorch 無法使用GPU 的問題,
問題描述:
之前我電腦已經(jīng)安裝好CUDA 10.1 的環(huán)境,驅(qū)動也是安裝好的,安裝了tensorflow-gpu ,并且可以正常使用tensorflow gpu 版來訓(xùn)練。今天有同學(xué)問我一些pytorch 的安裝問題,我之前沒有安裝過,所以實踐了一下,安裝過程很順利,找到官方網(wǎng)站,找到安裝的地方,復(fù)制命令,使用anconda 進(jìn)行了安裝:

安裝完成之后,我迫不及待的測試了一下是否安裝成功和能否使用GPU:
import torch print(torch.cuda.is_available())
結(jié)果返回的結(jié)果是False,也就是不可以使用GPU版本的pytorch,這讓人很煩。
問題解決思路
根據(jù)以往tensorflow安裝時候的問題解決思路,我猜測可能是cuda版本和pytorch 的版本對不上,我仔細(xì)對照了半天,發(fā)現(xiàn)不是這里的問題。所以問題可能出在cuda 和 顯卡驅(qū)動上面。
我輸入命令:nvidia-smi,正常的話會輸出顯卡驅(qū)動的相關(guān)信息,但是這里報錯了,報錯信息為:
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
顯卡驅(qū)動出問題了? 那重裝一下驅(qū)動應(yīng)該就可以解決問題,但是在ubuntu上安裝驅(qū)動有點繁瑣,所以我又測試了一下tensorflow-gpu 版本是否可以使用,輸入一下代碼:
import tensorflow as tf
發(fā)現(xiàn)竟然沒有報錯,陷入僵局了,這一句話沒報錯驅(qū)動應(yīng)該沒問題啊,我開始查找問題的答案,百度搜索了一下這個報錯:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
最終得出的結(jié)論是就是顯卡驅(qū)動壞了,我參考網(wǎng)上的解決辦法,執(zhí)行了以下命令,成功的解決了問題。
首先安裝 dkms
sudo apt-get install dkms
然后查看自己驅(qū)動的版本
ls /usr/local
輸出結(jié)果如下:

執(zhí)行以下命令:
sudo dkms install -m nvidia -v 418.43
注意命令后的版本要和上圖中的版本一致!
驗證是否生效
nvidia-smi 命令執(zhí)行正常了。

驗證pytorch:

問題成功解決了
后記
剛剛提到了一個奇怪的現(xiàn)象,顯卡驅(qū)動不正常,tensorflow-gpu 竟然可以成功的import,但是后來經(jīng)過測試發(fā)現(xiàn),雖然沒有報錯,但是訓(xùn)練過程使用了CPU,沒有使用GPU,運行的時候會報錯說 GPU驅(qū)動沒有運行之類的錯誤,然后使用CPU進(jìn)行了訓(xùn)練(直觀感覺就是慢了很多)。
為什么會出現(xiàn)顯卡驅(qū)動壞了的情況?猜測是系統(tǒng)更新造成的,因為之前我使用tensorflow-gpu的時候是正常的,并且沒有做任何的改動,所以很有可能是更新造成的損壞。
以上就是pytorch無法使用GPU問題的解決方法的詳細(xì)內(nèi)容,更多關(guān)于pytorch無法使用GPU的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python進(jìn)行有限元仿真的使用及創(chuàng)建
這篇文章主要為大家介紹了Python進(jìn)行有限元仿真的創(chuàng)建及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
使用Python Tkinter實現(xiàn)剪刀石頭布小游戲功能
這篇文章主要介紹了使用Python Tkinter實現(xiàn)剪刀石頭布小游戲功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
python調(diào)用API接口實現(xiàn)登陸短信驗證
在本篇文章里小編給大家整理的是關(guān)于python調(diào)用API接口實現(xiàn)登陸短信驗證的實例內(nèi)容,需要的朋友們可以參考下。2020-05-05
python基于mysql實現(xiàn)的簡單隊列以及跨進(jìn)程鎖實例詳解
這篇文章主要介紹了python基于mysql實現(xiàn)的簡單隊列以及跨進(jìn)程鎖,需要的朋友可以參考下2014-07-07
Python編程scoketServer實現(xiàn)多線程同步實例代碼
這篇文章主要介紹了Python編程scoketServer實現(xiàn)多線程同步實例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Python統(tǒng)計文件中去重后uuid個數(shù)的方法
這篇文章主要介紹了Python統(tǒng)計文件中去重后uuid個數(shù)的方法,實例分析了Python正則匹配及字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-07-07

