Anaconda+Pycharm環境下的PyTorch配置方法
寫給新手的話
pycharm
是什麼,為什麼讓我指定interpreter
記事本
最開始寫C
語言程式碼的時候,人們使用vi
,記事本
等軟體寫程式碼,寫完了之後用GCC
編譯,然後執行編譯結果,就是二進位制檔案。python
也可以這樣做,用記事本
寫完程式碼,儲存成如test.py
的檔案後,通過命令python test.py
可以執行這一檔案。最初的C
語言程式碼都是通過這種方式寫的。但是人們很快發現了一個問題,就是這麼弄太麻煩了,編寫用vi
,執行得切出去用shell
,出錯了再切回vi
改程式碼。這要是編寫、執行、除錯都能在同一個窗口裡進行,再來點語法檢查,高亮,顏色,程式碼提示,那寫程式碼的效率不就高多了嗎?所以就有了Microsoft Visual C++
C/C++
)、直譯器(java
,python
,R
),把編譯器和直譯器的執行結果顯示在自己的介面上,這些工具被稱為IDE
(整合開發環境)。正因為編譯器,直譯器不是它的組成部分,pycharm
中每個專案都要指定一個interpreter
才能執行。即某個路徑下的python.exe
。其他的IDE
也都要指定執行環境。
pip
又是什麼
應用商店 python
和java
一樣,執行起來需要各種包的支援。java
興起的最開始,開源jar
包作者在各自的網站上面釋出自己的包,需要用的開發者就去他們的網站上下載,然而很快就出現了一個問題,如果一個大型工程需要用到幾十個,甚至幾百個jar
maven
和gradle
,他們自己建了maven
倉庫和gradle
倉庫,就像IOS應用商店
一樣,開源jar
包的作者會把各種版本的jar
包統一上傳到倉庫,開發者統一下載,非常方便。 python
問世的時候,java
的maven
和gradle
早已流行多年,python
官方也吸取了經驗,直接官方內建pip
工具,官方經營pip
倉庫。正式的名稱叫做包管理工具
。 conda
的功能之一也是包管理工具。
conda
,vitualenv
,pipenv
又是什麼
照片管理系統 python
版本繁多,版本之間的區別較大。這種不相容激化了矛盾,當一臺機器上存在多個python
python
版本以及各個不同版本的包,這些包對於python
版本又非常敏感。即使有pip
,配置環境也變成了一件令人絕望的事。以往java
等語言沒有這麼激烈的矛盾,是因為它們沒有這麼多版本,而且版本之間也能大體相容。所以人們就想,如果能把pip
配置出來的結果“照”下來。不同專案用不同的“照片”,這問題不就解決了嗎。這類任務通常都是靠虛擬化技術。
- 傳統的虛擬機器可以勝任這個任務,但是執行效率有損失,消耗資源多,管理不靈活。
- 新晉的
docker
容器比虛擬機器更加輕量,更加靈活,但對於這個任務來說,還是同樣的缺點。
於是conda
等軟體應運而生,它不是虛擬機器,沒有使用虛擬化技術,自然就沒有執行效率損失。它只是一個物理機上的管理軟體,可以把它想象成一個照片管理系統
,只不過它管理的照片
有點特殊,叫做虛擬環境
,它是某個python
執行環境,裡面已經裝好了一些特定版本的特定包。 注意:pip
和pipenv
是兩個東西,不可混為一談。
anaconda
是什麼,anaconda
和conda
是什麼關係,為什麼要裝anaconda
XX照片管理系統+XX全家桶 anaconda
和miniconda
同為conda
官方推薦的conda
工具。anaconda
和conda
的關係,就像github
和git
的關係,anaconda
不光包含了conda
命令列軟體,還包含了多如牛毛的預裝python
包,以及令人瞠目結舌的黑科技全家桶。我們裝anaconda
主要是衝著conda
管理python
執行環境比較方便的原因,以及它那一大堆預裝包。雖然其他的我們用不到,但是大樹底下好乘涼嘛。
下文所述兩種配置方法異同
下面有兩種pytorch
環境配置方法,推薦使用第一種,即使用conda
的pytorch
環境配置方法。第二種費時費力。這是親測的結果。不禁慨嘆還是conda
好用,手動擼環境猶如小米加步槍啊。
使用conda
的pytorch
環境配置方法安裝anaconda
下載anaconda
在https://www.anaconda.com/distribution/ 找到合適的安裝包,得到下載連結後進行下載
https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
安裝anaconda
所有步驟參照官方文件 https://docs.anaconda.com/anaconda/install/linux/
bash Anaconda3-2019.03-Linux-x86_64.sh
使用conda
組裝pytorch
虛擬環境安裝pytorch
到本地conda
倉庫中
到pytorch
官方網站找到合適的安裝命令 https://pytorch.org/get-started/locally/ 注意:CUDA
是使用GPU
進行計算的元件。
conda install pytorch-cpu torchvision-cpu -c pytorch
使用下面的命令可以看到conda
倉庫中的torch
conda list |grep torch
建立新的conda
虛擬環境
官方文件
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
conda create --name pytorch-py36 --channel pytorch python=3.6 pytorch-cpu torchvision-cpu
使用conda
虛擬環境
activate pytorch-py36python
在開啟的python
命令列裡輸入
import torchimport torchvisionimport numpy
不報錯則說明構建conda
虛擬環境pytorch-py36
成功。 注意:pytorch-py36
預設在anaconda
目錄下的envs
資料夾中。
在pycharm
中使用conda
虛擬環境將自己建立的conda
虛擬環境pytorch-py36
新增到pycharm
的interpreter
可選列表中
在pycharm
新建工程,或在files->settings->project:<xxx>->project interpreter
介面,可以設定project interpreter
。
新建工程介面,選擇Existing enviroment
,點選...
按鈕,會彈出新增介面。settings
介面,點選齒輪
按鈕,選擇Add
,會彈出新增介面。在新增介面左側選擇Conda Environment
,右邊選擇Existing environment
,再點選...
按鈕新增一個已經存在的conda
虛擬環境,即剛剛構建的pytorch-py36
。
使用已經新增進來的虛擬環境pytorch-py36
在interpreter
列表中選擇剛剛新增的interpreter
。如果需要對剛新增的interpreter
改名,比如把python 3.6 (3)
改成pytorch-py36
,則點選齒輪
按鈕,點選show all
,裡面可以改名。
大功告成!
試著使用import torch
,import torchvision
這樣的語句,不會報錯則成功。
pytorch
手動配置方法原始碼安裝python3.6.7
下載python3.6.7
cd ~wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
建立目錄,改名
mkdir ~/pythonmkdir ~/python/python367mv ~/Python-3.6.7.tgz ~/python/python367.tgz
解壓縮
cd ~/pythontar xvf python367.tgz
原始碼安裝zlib
zlib
是python
需要的依賴庫,必須提前安裝。如果有管理員許可權,只需用包工具即可安裝,如sudo apt-get install zlib1g-dev
;因為沒有管理員許可權,所以採用原始碼安裝。可以用以下兩條命令確認zlib是否存在。
ls /usr/include |grep zlibls /usr/lib |grep zlib
如果任意一條輸出為空,則說明zlib
不存在,需要安裝。 注意:|grep
可以跟在任意命令之後,對該命令的輸出結果進行搜尋,只顯示跟搜尋內容有關的部分。
cd ~/python/Python-3.6.7/Modules/zlibmkdir ~/python/zlib./configure -- prefix=/home4/grad4/wzhao1/python/zlibmake install
然後將zlib
加入到GCC
的include
和lib
路徑中。
export C_INCLUDE_PATH=~/python/zlib/includeexport CPLUS_INCLUDE_PATH=~/python/zlib/includeexport LD_LIBRARY_PATH=~/python/zlib/libexport LIBRARY_PATH=~/python/zlib/lib
注意:此處的路徑修改僅對當前shell
有效,關閉shell
或斷開重連都會導致路徑失效。因為我們只需要編譯一次,所以採用這種方式。想檢視這兩個路徑的當前值使用echo
命令,即echo $C_INCLUDE_PATH
。如果想要每次都生效,可以將export
命令寫入.bashrc
中。 注意:GCC
編譯時搜尋的路徑遠比這些變數多,這些變數只是其中的一部分,且通常預設為空,也不是最優先的。比如最常見的,也是一般情況下最優先的搜尋路徑是/usr/include
和/usr/lib
,也就是剛才判斷zlib
是否存在的命令中搜索的路徑。 注意:四個變數含義:C標頭檔案路徑(.h),C++標頭檔案路徑(.hpp),動態連結庫路徑(.so),靜態連結庫路徑(.a)。
編譯安裝
cd ~/python/Python-3.6.7/./configure -- prefix=/home4/grad4/wzhao1/python/python367makemake install
如有報錯,必須停下來解決問題。如果一直沒有報錯,則會安裝成功。 注意:--prefix
後面的引數必須是絕對路徑,不能出現~
,.
,..
這樣的相對路徑。echo ~
可以顯示處當前使用者~
目錄的絕對路徑,如/home4/grad4/wzhao1
。--prefix
後面的引數簡單理解,就是windows
下的安裝路徑。 注意:以上過程是自動化編譯,./configure
這種可執行檔案一般顯示為綠色
,它的作用是根據當前環境,制定編譯策略,即Makefile
。C/C++
語言與java
,python
,scala
,R
等高度現代化的程式語言不同,它的部分語言特性是根據編譯時環境而定的,這一點頗受詬病。如long
,int
型的資料型別長度竟然取決於編譯時環境。
驗證安裝1
cd ~/python/python367/bin./python3.6
如果python
命令列正常啟動,且顯示版本也是正確的3.6.7
,則安裝成功。
備份編譯包
同一環境,尤其是同一伺服器下通常不需要重新編譯,只要有人編譯出一份並備份儲存,所有人都能直接下載使用。為了這個目的,以及備份的目的,我們要把編譯結果儲存成壓縮包。
cd ~/pythontar cvf python367.tgz python367
建立軟連線
軟連線可以簡單理解為windows
下的快捷方式,建立軟連線的目的是為了更方便地使用我們安裝的python
。從這個步驟開始都不做,python
也能正常使用。進入~/python/python367/bin
下檢視目前的情況。
ls -lh
可以看到,軟連線是淺藍色
,並標註了它指向的目標。如python3 -> python3.6
,而且可以看到python3.6
的檔案大小是12M,而python3
的大小是9(位元組)。我們建立名為python
和pip
的軟連線。
ln -s python3.6 pythonln -s pip3.6 pip
配置環境變數
修改檔案~/.bashrc
,新增python3.6.7
環境變數。 注意:這個檔案內的變數是使用者變數。系統變數在/etc/profile
。
cd ~vim .bashrc
注意:用vim
進行編輯時,不可使用滑鼠。螢幕下端是狀態列。開啟檔案時,預設為瀏覽狀態。輸入a
或i
可以進入編輯狀態。按ESC
回到瀏覽狀態,在瀏覽狀態下,輸入:q!
強制退出不儲存,輸入:wq
儲存退出。
export PYTHON_HOME="~/python/python367"export PATH="$PYTHON_HOME/bin:$PATH"
修改完環境變數後,不會立即生效。用這個命令讓環境變數立即生效。
source .bashrc
驗證安裝2
python --versionpip --version
顯示下列結果即安裝成功
Python 3.6.7pip 10.0.1
今後該使用者的shell
裡只要輸入python
和pip
,預設就是使用剛才安裝的python
和pip
。
在python3.6.7
中安裝pytorch
下載pytorch
在 https://pytorch.org 找到合適的安裝包,得到下載連結後進行下載
wget https://download.pytorch.org/whl/cpu/torch- 1.0.1.post2-cp36-cp36m-linux_x86_64.whl
使用pip
安裝pytorch
pip install torch-1.0.1.post2-cp36-cp36m- linux_x86_64.whlpip install torchvision
注意:torch-1.0.1.post2-cp36-cp36m-linux_x86_64.whl
不能改名,因為pip
會嚴格檢查檔名是否符合當前python
版本,不符合則拒絕安裝。
驗證安裝
pythonimport torchimport torchvision
不報錯則安裝成功。
在Pycharm
下使用pytorch
在新建工程的時候選擇existing interpreter
,指定之前安裝的python.exe
即可。(即~/python/python367
)對於已經存在的工程,可以按如下步驟操作(如果project interpreter
裡面有我們要的python.exe
,就不需要再add
了)
總結
到此這篇關於Anaconda+Pycharm環境下的PyTorch配置方法的文章就介紹到這了,更多相關Anaconda Pycharm PyTorch配置內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!