天天看點

linux / windows 系統搭建pytorch環境的一些細節:個人了解 / 知識點:

不同系統搭建pytorch環境的通用細節:

1、切換環境要用 conda activate env_name

2、常用指令:

        2.1 删除環境:conda remove -n env_name --all

        2.2 添加環境:conda create -n env_name python=3.8

        但是上述加入的環境變量,隻有幾個基礎包,如果想要更多的話(例如numpy等),就在指令最後加一個anaconda     例如   conda create -n env_name python=3.8 anaconda

        2.3 查詢目前有幾個環境:conda env list

        2.4 檢查conda是否安裝完成:conda --version 或 python

        2.5 安裝/解除安裝第三方包:進入該環境後,conda install  requests(包名)  conda remove requests(包名)  或者: pip install requests  pip uninstall requests

3、Anaconda有時候會崩,比如conda下載下傳東西時提示各種failed,如果這些failed解決不了,可以考慮将所有終端關掉,然後重新打開終端再試試,可能就能恢複,因為有時候你進行的操作沒有更新。

如果實在解決不了,①首先可以試試 conda clean -a 指令 清理緩存和不用的軟體,如果還不行,②其次可以嘗試解除安裝目前環境,如果還解決不了,③最後就解除安裝Anaconda軟體後重新安裝。具體解除安裝方法參考上文。

4、下載下傳好pytorch後,通過 import torch 和 torch.cuda.is_available() 和 from torch.backends import cudnn (torch.backends.cudnn.is_available())檢測是否安裝成功pytorch和cudatoolkit(或者系統中的cuda)和cudnn

5、Anaconda添加清華源時,正常添加方式是可以下載下傳的,如果報錯的話,就換個網。① 特别的:連接配接手機熱點時,遇到過sslerror錯誤,網上百度不到原因,後來換成校園網就可以下載下傳了;② 此外下載下傳完成後還遇到過checksumerror,同樣百度不到原因,把Anaconda解除安裝後重新安裝就好了(但一定要解除安裝幹淨)

6、檢測cuda的版本: nvcc -V    或者  nvidia-smi

如果 nvcc -V 或者 nvidia-smi 檢測不到cuda,但是你确實安裝過,這時候應該是環境變量的問題,百度一下添加環境變量。

7、下面關于下載下傳pytorch語句的解釋:conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

-c pytorch 是指定下載下傳的來源是pytorch ;   -c conda-forge 是指定下載下傳的來源是anaconda ;  如果在pytorch的來源沒有這個包,那麼就轉去 anaconda下載下傳(例如pytorch沒有cudatoolkit這個包)。是以舉一反三,如果我們想指定下載下傳的來源,可以加上 “ -c 下載下傳源 ”

cudatoolkit=11.3 這個語句,不一定非得有,如果在系統中有了CUDA,那麼這個語句沒有也可以,參照後面的知識點。另外補充:如果CUDA想用不同版本,可以在anaconda中下載下傳不同版本cudatoolkit,下載下傳好之後anaconda中的環境用的就是cudatoolkit,而不是系統中的CUDA,但是如果你下載下傳失敗,比如說cudatoolkit下到一半崩了,timeout逾時了(或者解析錯誤了,或者系統警告waring了),這麼這時候系統中的CUDA是不起作用的,你torch.cuda.is_available()是會報錯的,因為此時用的是你anaconda環境中的cudatoolkit,而這個環境中的cudatoolkit是錯誤的,這時你隻有把anaconda環境中的cudatoolkit解除安裝幹淨才會使用系統中的cuda。是以,如果系統中已經有了cuda,就可以這麼下載下傳:conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1  -c pytorch

8、有些版本的Anaconda軟體,使用 conda install 時不能使用代理(VPN),不知道這裡面的原因。但是親測過Anaconda 2020.07版本和Anaconda 2021.11月對待VPN是不同的,前者可以使用代理,後者不行。如果遇到 ProxyError: Conda cannot proceed due to an error in your proxy configuration 錯誤原因,你可以選擇關閉代理,繼續使用Anaconda,但是個人建議換個Anaconda吧……因為VPN下得快啊。

9、運作 pip install requests 報錯, ERROR: Exception   如下。 這種情況是沒有關掉VPN,關了就可以了

linux / windows 系統搭建pytorch環境的一些細節:個人了解 / 知識點:

 10、conda安裝報錯後,可以用pip指令安裝,例如某個包下不下來(比如下載下傳matplotlib時,conda下不了,就用pip下載下傳);

11、一下子下載下傳多個安裝包時,有些包沒有下載下傳成功,再用原指令重新下一遍(pytorch或者cudatoolkit太大,timeout了),如果重新下之後又報錯了,或者警告了(警告内容大多數是需要你手動删除某個檔案,這時候你 import torch 是沒有這個子產品的),可以用 conda clean -a 清除掉,然後重新下。

12、想用Pycharm的終端,但提示 Cannot open Local Terminal  Failed to start [powershell.exe] ,這是因為控制台的路徑不對,在 file→settings→Tools→Terminal→Shell path 中把值設定為 電腦系統 powershell.exe 檔案的全路徑。

linux / windows 系統搭建pytorch環境的一些細節:個人了解 / 知識點:

針對linux系統搭建pytorch環境的一些細節:

1、linux系統想要打開Anaconda 需要先進入conda的base環境,然後在指令行輸入anaconda-navigator 打開Anaconda軟體    

2、想要打開jupyter,首先進入conda 環境,然後輸入 jupyter notebook 可以打開

3、linux系統解除安裝Anaconda,注意要解除安裝幹淨,否則重裝後可能還會崩;在使用者檔案夾中 rm -rf *conda* 有關的所有内容,特别是有一些隐藏檔案,例如 .condarc .conda 可以通過 ls -a 檢視,然後一并删除。再重新下載下傳即可。

這裡需要提一下,解除安裝時.bashrc裡面的環境變量可以不删,隻要你下次還用預設安裝路徑就可以

4、conda install 時可以打開linux系統工具包中的流量管理工具,檢視下載下傳速度。

5、可以在系統中安裝cudnn,也可以在anaconda的環境中安裝cudnn。

在anaconda中安裝cudnn的語句: conda install cudnn

在系統中安裝cudnn:

(1)nvidia官網下載下傳,選擇 Cudnn library for linux

(2)解壓包: tar -xzvf   pack_name

(3)執行安裝,(拷貝頭檔案和庫檔案并給予權限)

sudo cp cuda/include/* /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
           

(4)驗證安裝是否成功

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
           

6、同樣的,可以在系統中安裝cuda,也可以在anaconda中安裝cudatoolkit (相關細節見文末)。

個人了解 / 知識點:

        如果在系統中安裝了cuda,那麼即使conda環境中沒有安裝cudatookit,也可以使用cuda(親測有效),不過這時候的cuda是系統中的;如果在conda環境中安裝了cudatoolkit,這時候使用的就是conda環境中的cudatoolkit了。

        如果conda環境中沒有cudatoolkit,那麼系統中的cuda版本一定要大于等于pytorch所需的cuda的版本。(補充:cuda驅動可以向下相容,是以一直保持最新就行,例如torch需要11.1版本的cuda,那麼系統中是11.3版本的cuda是完全可以用的)

        如果在conda中安裝cudatoolkit,不用擔心版本問題,因為conda會自動安裝相比對的版本。

        是以,在conda裡面離線安裝pytorch,是完全可以的,盡管在conda裡沒法離線安裝cudatoolkit(或許也可以,但我沒研究過),因為隻要系統中裝有高版本的cuda,conda就可以隻安裝pytorch。離線安裝方法、pytorch離線安裝網站

        個人認為,隻需要在系統中安裝高版本cuda即可,因為cuda隻需要選擇高版本,就可以适配一切torch版本。雖然conda作用是隔離環境,但是隔離的是python環境和pytorch環境,而不管什麼版本的pytorch和python,安裝最高版本的cuda都可以運作。是以可以将cuda固定在系統中,隻改變conda裡面的torch版本和python版本。

此外,除了可以離線安裝 pytorch,還可以離線/線上安裝 torchtext(用于nlp)、torchaudio(用于音頻)、torchvision(用于視訊)等等等

繼續閱讀