pytorch安裝爬坑指南
Anaconda+CUDA+CUDNN+PyTorch踩坑經驗總結
前言
- Anaconda是一種python的包管理工具,比起單pip來說,它的特點是能夠創造一個屬於某一個專案的包環境,比如神經網路,我要用pytorch,pandas。比如做資料分析,我用numpy,matplotlib,pandas等,一個專案對應一個包環境,anaconda可以進行相關環境的建立,刪除,管理,複製等操作,同時anaconda自帶了pip的下載功能,也有相應的GUI減少命令列工作(當然本文中主要還是採用的命令列的形式。
- CUDA(Compute Unified Device Architecture),是英偉達公司推出的一種基於新的並行程式設計模型和指令集架構的通用計算架構,它能利用英偉達GPU的平行計算引擎,比CPU更高效的解決許多複雜計算任務。一言以蔽之,CUDA用GPU來加速進行神經網路運算。
- NVIDIA cuDNN是用於深度神經網路的GPU加速庫。它強調效能、易用性和低記憶體開銷。NVIDIA cuDNN可以整合到更高級別的機器學習框架中,如加州大學伯克利分校的流行CAFFE軟體。簡單的,插入式設計可以讓開發人員專注於設計和實現神經網路模型,而不是調整效能,同時還可以在GPU上實現高效能現代平行計算。同樣是加速神經網路,不同的是CUDA跟硬體層連結,CUDNN跟軟體層進行連結,總之二者缺一不可。
- PyTorch是Python著名的神經網路相關的庫,也是本文的主角。
Anaconda
下載Anaconda
在https://anaconda.org/中下載anaconda並執行安裝包。
執行到這一步時要注意勾選1 Add Anaconda to my PATH environment variable,這樣python呼叫你的包就只會訪問anaconda中的環境,不必擔心在anaconda中下載了包而不知道如何匯入的問題。
裝完即可。
執行Anaconda Prompt
Anaconda Prompt是一個執行Anaconda的命令列,接下去我們再Anaconda中的操作都可以在該命令列中(不是windows自帶的cmd命令列)執行。
搜尋並開啟:
(base)代表主環境,不建議在主環境下安裝包,由於我們要安裝一個神經網路相關的環境。不如叫它NN(Neural Network)吧!我們建立一個環境,命令如下(這裡只需跟著做,如果遇到不懂的可以查“Anaconda命令”)
命令解釋:conda是在anaconda中輸入命令時的第一個單詞,所有命令都以這個為開頭,create代表你要建立虛擬環境,-n 和 NN是在一起,代表名字是NN,當然你也可以把NN改成你想要的名字,最後指定python版本。(一定要python3.7,版本高了會報錯)
輸入命令 conda activate NN,就進入到你的環境中了。之後你大部分的工作都在這個環境中進行。
CUDA
有N卡的話,開啟NVIDIA Control Panel然後跟著箭頭走。
這裡告訴你你能安裝多少版本的CUDA,我能直接安裝11.5.56的CUDA,然後就去CUDA官網安裝就可以了。
這裡貼出CUDA11.1的安裝連結,如果N卡合適的話就直接安裝就好了,不合適就去官網找低版本的。
把這個url貼上到迅雷中下載:https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_456.43_win10.exe
無腦安裝即可。
為CUDA新增環境變數
你需要在系統環境變數的Path項下新增幾個路徑 開啟控制面板,開啟系統和安全,開啟系統,相關設定裡開啟高階系統設定,開啟環境變數,在系統變數裡面開啟path。
新增以下兩個路徑:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
驗證CUDA是否安裝,在Anaconda Prompt中輸入nvcc -V即可:
PyTorch
安裝PyTorch
安裝PyTorch之前,先安裝numpy。
conda中輸入
pip install numpy=1.17.1
安裝好了,然後安裝pytorch
pip install pytorch=1.7
版本不宜過高,會出bug。
在自己的環境下(我這裡是base),使用shell視窗進行python的互動模式,輸入以上指令,如果都是True就說明Cuda和CUDNN都以安裝完成。
爬坑
pytorch和numpy版本過高
python和numpy版本過高,導致編譯器中import pytorch時出現錯誤。
操作儘量都在Anaconda Prompt中完成
-
沒有在anaconda的環境中,導致沒有找到相應的環境。
-
以為是在Anaconda中,但是實際上是在cmd中。
CUDA版本適配
所有的東西都下載好了,但是import之後cuda還是出現錯誤,原來是原先的CUDA只能支援10.4的版本。有兩種解決方案:
1. 裝10.4版本的CUDA
2. 升級顯示卡驅動
我這裡選擇的是升級顯示卡驅動:進入官網:https://www.nvidia.com/en-us/geforce/geforce-experience/,下載geforce-experience,
註冊賬號然後再驅動程式中更新驅動即可。