完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法
一直用的TensorFlow(keras)來完成一些工作,因許多論文中的模型用pytorch來實現(xiàn),代碼看不懂實在是不太應(yīng)該。正好趁此假期,疫情原因無法出去浪,在家學(xué)一下pytorch。
游戲用筆記本自帶GeForce 1050顯卡,可用GPU,想著不用白不用,先裝一個GPU版本再說。但是我按照網(wǎng)上的所有方法,torch.cuda.is_available()總是返回False。有輕微強迫癥的我,不解決掉是睡不好的。
首先說一下我所做的工作順序。說不定能有參考。(系統(tǒng):WIN10)
1.安裝CUDA
此處有其他大量且優(yōu)質(zhì)的帖,故不在此詳述。我自己的機器支持CUDA10.2,但是我安裝的是CUDA10,按理說應(yīng)該版本是向下支持的。安裝正確在cmd中敲nvcc -V能顯示即可。
NVIDIA-smi命令截圖如下。感覺是沒什么問題的,驅(qū)動版本也挺高。
2.安裝對應(yīng)版本的pytorch
首先想到的肯定是官網(wǎng)安裝。conda+重新開放的清華源=神速。此處是我自己的一個大坑。
3.安裝cudnn等
同樣,有大量帖子教學(xué)。我是在一直失敗,走投無路,抱著安裝一下試試的想法,結(jié)果并無卵用。
玄學(xué)解決
網(wǎng)上的攻略說產(chǎn)生此類問題的主要原因在于驅(qū)動安裝的不正確。但我自己的情況并不符合。
在搜了大量的帖子無果后。偶然發(fā)現(xiàn),使用官網(wǎng)conda命令下載的,居然全是CPU版本。
無論我怎么嘗試使用conda下載任何版本,都是cpu版本的??赡苁乔迦A源的問題??
既然conda無法用,那就用pip。官網(wǎng)的pip命令,不知道是不是我的問題,就算使用各種源,速度也超級慢,還會中斷,700M+硬是下不下來。無奈使用本地下載方法。
在此處尋找符合自己版本的pytorch-cuda版本,torchvision版本下載。
https://download.pytorch.org/whl/torch_stable.html
(速度同樣極慢!但是不會斷了。。。。勉強能下)
下載后pip install xxx(下載下來的文件名) 安裝即可。
接下來就見證奇跡了。但是奇跡是怎么發(fā)生的,conda為什么只能下cpu版本,我一直沒有搞明白。
補充:記錄下pytorch安裝中一個比較隱蔽的坑,torch.cuda.is_available()返回false的一個原因
如題,想要安裝GPU版,一開始從網(wǎng)上找了教程,顯卡驅(qū)動、CUDA、cuDNN挨個更新安裝,都選擇了10.1版本,安裝完后在anaconda中按照官網(wǎng)提示輸入下面的代碼,可以看到cudatoolkit即GPU版
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
然后發(fā)現(xiàn)基本上大一點的包都下載不下來,包括pytorch、cudatoolkit等等,遂又從網(wǎng)上找教程,加清華源,加了幾個之后下載很快,下載下來也可以用,以為已經(jīng)成功了,但是torch.cuda.is_available()返回就是False。
最開始以為是開始安裝的版本不匹配,然后又嘗試了10.2版本的CUDA,結(jié)果還是一模一樣,最后輸入conda list后終于發(fā)現(xiàn)了問題所在:
可以看到第三列版本號前面的cpu,后來上清華源的網(wǎng)站上看了下,可能是清華源沒有對應(yīng)cuda版本的pytorch,所以會裝cpu版的。
目前的解決方法有兩個,可以去清華源網(wǎng)站上找對應(yīng)的版本,https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/,安裝輸入命令行時將cuda版本改掉。也可以科學(xué)上網(wǎng),直接從官網(wǎng)安裝。
相關(guān)文章
以Python的Pyspider為例剖析搜索引擎的網(wǎng)絡(luò)爬蟲實現(xiàn)方法
這篇文章主要介紹了以Python的Pyspider為例剖析搜索引擎的網(wǎng)絡(luò)爬蟲實現(xiàn)方法,Pyspider是一個開源項目、用Python語言編寫十分簡潔且具有爬蟲程序的代表性,需要的朋友可以參考下2015-03-03Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個映射合并為單個映射的方法
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個映射合并為單個映射的方法,結(jié)合實例形式分析了Python字典映射合并操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-04-04Python存儲List數(shù)據(jù)到文件(text/csv/excel)幾種常見方法
在數(shù)據(jù)分析中經(jīng)常需要從csv格式的文件中存取數(shù)據(jù)以及將數(shù)據(jù)寫書到csv文件中,下面這篇文章主要給大家介紹了關(guān)于Python存儲List數(shù)據(jù)到文件(text/csv/excel)的幾種常見方法,需要的朋友可以參考下2024-02-02