前言:
最近跑代碼發現我的環境配置有一些問題,所以需要仔細檢查一下我的CUDA環境以及重裝Torch,由於也在服務器的linux環境重裝了torch,有很多重復的步驟,總是記不住,所以寫一篇博客來記一記,以后方便自己查看。
正文:
前提:主機已安裝Anaconda,具備顯卡。
1.查看及安裝自己電腦適配的CUDA驅動器+cudann。
參考這篇博客,這里列一些注意注意事項,建議先看了再參考:
(a) 如下圖所示,右側的支持驅動版本11.0.228是支持的最高版本,你可以裝稍微低一點的版本,但是不能高於此版本。比如我就是裝的10.1的版本,可以正常使用。
(b)網上可以看到下表,我的驅動程序版本是452.56(也就是可以支持11.0.3),但是還是那句話,這個最高版本,對於容易沖動一股腦就下載最高版本的人來說,下載低一點的比較好。
(c)Cudann由於下載速度太慢,建議大家機智上網,我的火狐瀏覽器即使機智上網速度依然很慢,所以用的谷歌,當然,也可能因人而異。
注意一定要下載匹配自己剛才下載的CUDA版本,不然。。。就太慘啦!
2 Conda新建環境安裝pytorch(快速安裝,速度可觀
如果你之前給Conda配置過其他源,可能會在創建虛擬環境過程中出一些很奇怪的錯誤,錯誤的最后提示是要不要上傳當前錯誤情況,這里提前避免一下,linux 和 windows 下面操作相同(兩個環境我都跑了,建議大家直接食用。
2.1 恢復默認源-創建虛擬環境。
# linux 系統如果從根目錄直接想訪問conda的話,可以先輸入下面兩句話,就可以正常使用conda命令了
echo 'export PATH="~/anaconda3/bin:$PATH"'>>~/.bashrc
source ~/.bashrc
# 下面創建步驟 windows 和 linux 相同
conda config --remove-key channels # 恢復默認源
conda create -n mynewenv python = 3.7
# 創建python版本為3.7的虛擬環境,環境名字叫做mynewenv,你可以換一個你想要的名字
2.2 創建torch環境
# 下面步驟 windows 和 linux 相同
conda activate mynewenv # 進入剛才創建的虛擬環境
# 添加源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 輸入命令下載torch,參考網址:https://pytorch.org/
# 選擇適合你cuda版本的命令,注意命令后面的-c python要刪掉!!!
conda install pytorch torchvision torchaudio cudatoolkit=10.1 # 我發現windows和linux命令是相同的...
刪除官網命令后面的-c python之后的速度會快很多!否則得下到猴年馬月啊,因為-c python的意思是使用官網源下載,不是我們添加的清華源,所以速度會慢很多,但是由於使用的其他源,也會有一些問題出現。比如說,缺少一些包之類的,可以輸入conda list檢查一下重要的三個包在不在。(pytorch / torch, torchvision , torchaudio, cudatoolkit)
2.3 檢查torch是否安裝成功
#windows 與 linux一致: 在剛才的虛擬環境下 進入python python
# 執行代碼 import torch
# 判斷torch是否安裝成功 x = torch.rand(5,5)
print(x)
# 判斷cuda是否安裝成功可正常與torch共同使用
torch.cuda.is_available()
# 如果返回的是ture,則結束啦!正常的!后面會記錄一些你可能會出現的錯誤,比如這里返回false
3 一些問題的解決方法
3.1 輸入torch.cuda.is_available() 返回 false 無其他報錯
解決辦法:新建虛擬環境,重裝torch。(前提:確認我的cuda版本支持以及cudann版本匹配,兩者安裝路徑及步驟正確。
3.2 輸入torch.cuda.is_available() 返回 false 有報錯
報錯信息如下圖所示,提示cuda可能有一些問題。
解決辦法:將安裝的cuda驅動unload再reload,建議自行搜索教程。
3.3 輸入nvidia-smi,報錯:Failed to initialize NVML: Driver library version mismatch
解決辦法:同3.2
4 記錄一些額外的conda指令
# 以下命令 windows 和 linux一致 # 刪除虛擬環境 conda remove -n mynewenv --all # 退出虛擬環境 conda deactivate # 如果不能正常進入虛擬環境按照下面兩個步驟: # step 1 source activate mynewenv # step 2 conda activate mynewenv # 查看已有的虛擬環境 conda-env list # linux conda info -e # windows # 備份/ 克隆虛擬環境 conda create -n newenv --clone oldenv
5 參考博客:
https://www.cnblogs.com/guan-zl/p/12986253.html
https://blog.csdn.net/suiyueruge1314/article/details/89472914