conda安裝GPU版pytorch默認(rèn)卻是cpu版本
一、問題描述
按照pytorch官網(wǎng)安裝pytorch GPU版本,結(jié)果卻是CPU版本。
我的倔脾氣,嘿!反反復(fù)復(fù)安裝、卸載個(gè)五、六、七、八 遍。才意識(shí)到再操作一遍也是一樣的結(jié)果。
二、網(wǎng)上解決方案羅列【此節(jié)為反面方案羅列?。?!】
還是上網(wǎng)搜索:
結(jié)果發(fā)現(xiàn),遇到和我同樣問題的還不少。
我發(fā)現(xiàn)大家的解決辦法不相同,大致如下:
解決方案一:卸載pytorch-mutex
解決方案二:卸載cpuonly
解決方案三:卸載numpy
,哦呵…
如果繼續(xù)往下看,你或許明白上面的方案的確能解決問題。但是,這種神秘性以及某種被約束的感覺真的不是太好。上面這些方案,其實(shí)就是瞎貓碰上死耗子!??! 他們能起作用本身就是一個(gè)BUG。
程序員的詭異操作,寫的代碼莫名其妙運(yùn)行起來了。。
想知道這個(gè)問題產(chǎn)生的根本原因以及根本解決方案,那么請繼續(xù)跟著我一起往下看吧…
三、發(fā)現(xiàn)的根本原因[獨(dú)家]
3.1 pytorch文件命名格式
首先介紹一個(gè)pytorch
的文件名的普通命名格式。
一個(gè)在python=3.7
conda 環(huán)境下,cudatoolkit=10.1
版本的pytorch=1.7.0
的文件名為:pytorch-1.7.0-py3.7_cuda10.1.243_cudnn7.6.3_0.tar.bz2
。
一個(gè)在python=3.7
conda 環(huán)境下,CPU
版本的pytorch=1.7.0
的文件名為pytorch-1.7.0-py3.7_cpu_0.tar.bz2
。
從上可以看出,不同的python版本,GPU/CPU,若是GPU版本,則cudatoolkit的版本,再加上pytorch的版本,唯一指定一個(gè)pytorch安裝文件。
明白這個(gè),我們再繼續(xù)往下。
3.2 問題的根本原因:找不到對(duì)應(yīng)GPU版本的pytorch文件,所以conda就用CPU替代了=v=
先說一下問題產(chǎn)生的根本原因:指定某一版本cudatoolkit
下的指定版本的pytorch
不在源(國內(nèi)conda鏡像源或因外源)中,導(dǎo)致某一版本cudatoolkit
下的指定版本的pytorch
無法被conda install找到,然而不湊巧的是,源中卻有指定版本的pytorch
,不過它是CPU版本。那么,conda install這個(gè)小機(jī)靈鬼自作主張的替你安裝了這個(gè)版本。結(jié)果就是,你覺得明明安裝的是GPU版pytorch,可是像是有種神秘力量讓你最終得到的總是cpu版pytorch。
例子1:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
-c pytorch
是指在官方源里找?guī)?。此時(shí),如果conda官方源里沒有(或者由于網(wǎng)絡(luò)問題無法訪問官方源)cudatoolkit=11.3
對(duì)應(yīng)的GPU版pytorch
,而此時(shí)conda install又找到一個(gè)CPU版的pytorch
,那么結(jié)果是,它給你安裝了這個(gè)cpu版的pytorch
。
例子2:
conda create -n pytorch-GPU python=3.7 # 創(chuàng)建一個(gè)python3.7的conda環(huán)境 conda activate pytorch-GPU # 進(jìn)入該conda環(huán)境 conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 換conda源 conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 換conda源 conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ # 換conda源 conda install cudatoolkit=10.0 -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 安裝 cuda conda install cudnn=7.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/ # 安裝cudnn conda install pytorch==1.7.0 torchvision==0.8 cudatoolkit=10.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/# 安裝pytorch
我想通過國內(nèi)的鏡像源來安裝cudatoolkit=10.0
版本的pytorch==1.7.0
,結(jié)果我發(fā)現(xiàn)安裝的還是cpu版本。我在https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/上發(fā)現(xiàn),原來鏡像源里根本沒這個(gè)文件。于是,conda install這個(gè)小機(jī)靈鬼又自作主張的給我裝了cpu版本的文件pytorch-1.7.0-py3.7_cpu_0.tar.bz2
,它給我裝的文件python版本相同,pytorch版本相同,唯一不同的就是CPU/GPU。
此處需要指出,若采用官方命令conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch,安裝的是pytorch==1.4.0版本,此版本在from torch.cuda.amp import GradScaler, autocast時(shí)會(huì)報(bào)錯(cuò)from torch.cuda.amp import GradScaler, autocast。網(wǎng)上說是1.4版本太低,換1.7就好了。
3.3 解決方案
我們安裝前先要確定源中是否真的有我們組合出來的版本,[python|cudatoolkit|pytorch]這三個(gè)版本不同的組合,真的不一定有。
例如,我發(fā)現(xiàn)根本沒有滿足python=3.7
,cudatoolkit=10.0
以及pytorch=1.7.0
的版本,但是在鏡像源中,我發(fā)現(xiàn)有python=3.7
,cudatoolkit=10.1
以及pytorch=1.7.0
的版本,于是用以下命令安裝:
conda create -n pytorch-GPU python=3.7 # 創(chuàng)建一個(gè)python3.7的conda環(huán)境 conda activate pytorch-GPU # 進(jìn)入該conda環(huán)境 conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 換conda源 conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 換conda源 conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ # 換conda源 conda install cudatoolkit=10.1 -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 安裝 cuda conda install cudnn=7.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/ # 安裝cudnn conda install pytorch==1.7.0 torchvision==0.8 cudatoolkit=10.1 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/# 安裝pytorch
仔細(xì)看下圖的倒數(shù)第5行,我們發(fā)現(xiàn),conda install找到對(duì)應(yīng)的gpu版本,此時(shí),它便不好去自作主張了,乖乖地給我安裝gpu版本吧。
到此這篇關(guān)于conda安裝GPU版pytorch默認(rèn)卻是cpu版本的文章就介紹到這了,更多相關(guān)安裝pytorch gpu會(huì)默認(rèn)安裝cpu內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python之numpy.random.seed()和numpy.random.RandomState()區(qū)別及說明
這篇文章主要介紹了Python之numpy.random.seed()和numpy.random.RandomState()區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2017-10-10Python之關(guān)于類變量的兩種賦值區(qū)別詳解
這篇文章主要介紹了Python之關(guān)于類變量的兩種賦值區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python pandas RFM模型應(yīng)用實(shí)例詳解
這篇文章主要介紹了Python pandas RFM模型應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了pandas RFM模型的概念、原理、應(yīng)用及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-11-11Pythont特殊語法filter,map,reduce,apply使用方法
這篇文章主要介紹了Pythont特殊語法filter,map,reduce,apply使用方法,需要的朋友可以參考下2016-02-02Python可視化工具如何實(shí)現(xiàn)動(dòng)態(tài)圖表
這篇文章主要介紹了Python可視化工具如何實(shí)現(xiàn)動(dòng)態(tài)圖表,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10使用python本地部署DeepSeek運(yùn)行時(shí)報(bào)錯(cuò)?OSError:?[WinError?193]?%1?不是
文章介紹了在本地使用Python部署DeepSeek時(shí)遇到的OSError:?[WinError?193]?錯(cuò)誤,通過檢查錯(cuò)誤信息,發(fā)現(xiàn)與numpy版本有關(guān),解決方法是卸載并重新安裝numpy,最終,問題得到解決,感興趣的朋友跟隨小編一起看看吧2025-02-02