這篇文章將為大家詳細(xì)講解有關(guān)Anaconda+Pycharm環(huán)境下如何配置PyTorch,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
為華容等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及華容網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、華容網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!pycharm
是什么,為什么讓我指定interpreter
記事本
最開(kāi)始寫(xiě)C
語(yǔ)言代碼的時(shí)候,人們使用vi
,記事本
等軟件寫(xiě)代碼,寫(xiě)完了之后用GCC
編譯,然后運(yùn)行編譯結(jié)果,就是二進(jìn)制文件。python
也可以這樣做,用記事本
寫(xiě)完代碼,保存成如test.py
的文件后,通過(guò)命令python test.py
可以運(yùn)行這一文件。最初的C
語(yǔ)言代碼都是通過(guò)這種方式寫(xiě)的。但是人們很快發(fā)現(xiàn)了一個(gè)問(wèn)題,就是這么弄太麻煩了,編寫(xiě)用vi
,運(yùn)行得切出去用shell
,出錯(cuò)了再切回vi
改代碼。這要是編寫(xiě)、運(yùn)行、調(diào)試都能在同一個(gè)窗口里進(jìn)行,再來(lái)點(diǎn)語(yǔ)法檢查,高亮,顏色,代碼提示,那寫(xiě)代碼的效率不就高多了嗎?所以就有了Microsoft Visual C++
等寫(xiě)代碼工具,這些工具除了提供方便的文本編輯功能,還能夠連接到編譯器(C/C++
)、解釋器(java
,python
,R
),把編譯器和解釋器的運(yùn)行結(jié)果顯示在自己的界面上,這些工具被稱(chēng)為IDE
(集成開(kāi)發(fā)環(huán)境)。正因?yàn)榫幾g器,解釋器不是它的組成部分,pycharm
中每個(gè)項(xiàng)目都要指定一個(gè)interpreter
才能運(yùn)行。即某個(gè)路徑下的python.exe
。其他的IDE
也都要指定運(yùn)行環(huán)境。
pip
又是什么應(yīng)用商店 python
和java
一樣,運(yùn)行起來(lái)需要各種包的支持。java
興起的最開(kāi)始,開(kāi)源jar
包作者在各自的網(wǎng)站上面發(fā)布自己的包,需要用的開(kāi)發(fā)者就去他們的網(wǎng)站上下載,然而很快就出現(xiàn)了一個(gè)問(wèn)題,如果一個(gè)大型工程需要用到幾十個(gè),甚至幾百個(gè)jar
包,一個(gè)個(gè)翻網(wǎng)站下載顯然是非常勞累的。所以就有了maven
和gradle
,他們自己建了maven
倉(cāng)庫(kù)和gradle
倉(cāng)庫(kù),就像IOS應(yīng)用商店
一樣,開(kāi)源jar
包的作者會(huì)把各種版本的jar
包統(tǒng)一上傳到倉(cāng)庫(kù),開(kāi)發(fā)者統(tǒng)一下載,非常方便。 python
問(wèn)世的時(shí)候,java
的maven
和gradle
早已流行多年,python
官方也吸取了經(jīng)驗(yàn),直接官方內(nèi)置pip
工具,官方經(jīng)營(yíng)pip
倉(cāng)庫(kù)。正式的名稱(chēng)叫做包管理工具
。 conda
的功能之一也是包管理工具。
conda
,vitualenv
,pipenv
又是什么照片管理系統(tǒng) python
版本繁多,版本之間的區(qū)別較大。這種不兼容激化了矛盾,當(dāng)一臺(tái)機(jī)器上存在多個(gè)python
項(xiàng)目,而這些項(xiàng)目又各自依賴于不同的python
版本以及各個(gè)不同版本的包,這些包對(duì)于python
版本又非常敏感。即使有pip
,配置環(huán)境也變成了一件令人絕望的事。以往java
等語(yǔ)言沒(méi)有這么激烈的矛盾,是因?yàn)樗鼈儧](méi)有這么多版本,而且版本之間也能大體兼容。所以人們就想,如果能把pip
配置出來(lái)的結(jié)果“照”下來(lái)。不同項(xiàng)目用不同的“照片”,這問(wèn)題不就解決了嗎。這類(lèi)任務(wù)通常都是靠虛擬化技術(shù)。
傳統(tǒng)的虛擬機(jī)可以勝任這個(gè)任務(wù),但是運(yùn)行效率有損失,消耗資源多,管理不靈活。
新晉的docker
容器比虛擬機(jī)更加輕量,更加靈活,但對(duì)于這個(gè)任務(wù)來(lái)說(shuō),還是同樣的缺點(diǎn)。
于是conda
等軟件應(yīng)運(yùn)而生,它不是虛擬機(jī),沒(méi)有使用虛擬化技術(shù),自然就沒(méi)有運(yùn)行效率損失。它只是一個(gè)物理機(jī)上的管理軟件,可以把它想象成一個(gè)照片管理系統(tǒng)
,只不過(guò)它管理的照片
有點(diǎn)特殊,叫做虛擬環(huán)境
,它是某個(gè)python
運(yùn)行環(huán)境,里面已經(jīng)裝好了一些特定版本的特定包。 注意:pip
和pipenv
是兩個(gè)東西,不可混為一談。
anaconda
是什么,anaconda
和conda
是什么關(guān)系,為什么要裝anaconda
XX照片管理系統(tǒng)+XX全家桶 anaconda
和miniconda
同為conda
官方推薦的conda
工具。anaconda
和conda
的關(guān)系,就像github
和git
的關(guān)系,anaconda
不光包含了conda
命令行軟件,還包含了多如牛毛的預(yù)裝python
包,以及令人瞠目結(jié)舌的黑科技全家桶。我們裝anaconda
主要是沖著conda
管理python
運(yùn)行環(huán)境比較方便的原因,以及它那一大堆預(yù)裝包。雖然其他的我們用不到,但是大樹(shù)底下好乘涼嘛。
下文所述兩種配置方法異同
下面有兩種pytorch
環(huán)境配置方法,推薦使用第一種,即使用conda
的pytorch
環(huán)境配置方法。第二種費(fèi)時(shí)費(fèi)力。這是親測(cè)的結(jié)果。不禁慨嘆還是conda
好用,手動(dòng)擼環(huán)境猶如小米加步槍啊。
使用conda
的pytorch
環(huán)境配置方法安裝anaconda
下載anaconda
在https://www.anaconda.com/distribution/ 找到合適的安裝包,得到下載鏈接后進(jìn)行下載
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
虛擬環(huán)境安裝pytorch
到本地conda
倉(cāng)庫(kù)中
到pytorch
官方網(wǎng)站找到合適的安裝命令 https://pytorch.org/get-started/locally/ 注意:CUDA
是使用GPU
進(jìn)行計(jì)算的組件。
conda install pytorch-cpu torchvision-cpu -c pytorch
使用下面的命令可以看到conda
倉(cāng)庫(kù)中的torch
創(chuàng)建新的conda list |grep torch
conda
虛擬環(huán)境官方文檔
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
虛擬環(huán)境
activate pytorch-py36python
在打開(kāi)的python
命令行里輸入
import torchimport torchvisionimport numpy
不報(bào)錯(cuò)則說(shuō)明構(gòu)建conda
虛擬環(huán)境pytorch-py36
成功。 注意:pytorch-py36
默認(rèn)在anaconda
目錄下的envs
文件夾中。
在pycharm
中使用conda
虛擬環(huán)境將自己創(chuàng)建的conda
虛擬環(huán)境pytorch-py36
添加到pycharm
的interpreter
可選列表中
在pycharm
新建工程,或在files->settings->project:
界面,可以設(shè)定project interpreter
。
新建工程界面,選擇Existing enviroment
,點(diǎn)擊...
按鈕,會(huì)彈出添加界面。settings
界面,點(diǎn)擊齒輪
按鈕,選擇Add
,會(huì)彈出添加界面。在添加界面左側(cè)選擇Conda Environment
,右邊選擇Existing environment
,再點(diǎn)擊...
按鈕添加一個(gè)已經(jīng)存在的conda
虛擬環(huán)境,即剛剛構(gòu)建的pytorch-py36
。
使用已經(jīng)添加進(jìn)來(lái)的虛擬環(huán)境pytorch-py36
在interpreter
列表中選擇剛剛添加的interpreter
。如果需要對(duì)剛添加的interpreter
改名,比如把python 3.6 (3)
改成pytorch-py36
,則點(diǎn)擊齒輪
按鈕,點(diǎn)擊show all
,里面可以改名。
大功告成!
試著使用import torch
,import torchvision
這樣的語(yǔ)句,不會(huì)報(bào)錯(cuò)則成功。
pytorch
手動(dòng)配置方法源碼安裝python3.6.7
下載python3.6.7
cd ~wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
創(chuàng)建目錄,改名
mkdir ~/pythonmkdir ~/python/python367mv ~/Python-3.6.7.tgz ~/python/python367.tgz
解壓縮
源碼安裝zlibcd ~/pythontar xvf python367.tgz
zlib
是python
需要的依賴庫(kù),必須提前安裝。如果有管理員權(quán)限,只需用包工具即可安裝,如sudo apt-get install zlib1g-dev
;因?yàn)闆](méi)有管理員權(quán)限,所以采用源碼安裝??梢杂靡韵聝蓷l命令確認(rèn)zlib是否存在。
ls /usr/include |grep zlibls /usr/lib |grep zlib
如果任意一條輸出為空,則說(shuō)明zlib
不存在,需要安裝。 注意:|grep
可以跟在任意命令之后,對(duì)該命令的輸出結(jié)果進(jìn)行搜索,只顯示跟搜索內(nèi)容有關(guān)的部分。
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
注意:此處的路徑修改僅對(duì)當(dāng)前shell
有效,關(guān)閉shell
或斷開(kāi)重連都會(huì)導(dǎo)致路徑失效。因?yàn)槲覀冎恍枰幾g一次,所以采用這種方式。想查看這兩個(gè)路徑的當(dāng)前值使用echo
命令,即echo $C_INCLUDE_PATH
。如果想要每次都生效,可以將export
命令寫(xiě)入.bashrc
中。 注意:GCC
編譯時(shí)搜索的路徑遠(yuǎn)比這些變量多,這些變量只是其中的一部分,且通常默認(rèn)為空,也不是最優(yōu)先的。比如最常見(jiàn)的,也是一般情況下最優(yōu)先的搜索路徑是/usr/include
和/usr/lib
,也就是剛才判斷zlib
是否存在的命令中搜索的路徑。 注意:四個(gè)變量含義:C頭文件路徑(.h),C++頭文件路徑(.hpp),動(dòng)態(tài)鏈接庫(kù)路徑(.so),靜態(tài)鏈接庫(kù)路徑(.a)。
編譯安裝
cd ~/python/Python-3.6.7/./configure -- prefix=/home4/grad4/wzhao1/python/python367makemake install
如有報(bào)錯(cuò),必須停下來(lái)解決問(wèn)題。如果一直沒(méi)有報(bào)錯(cuò),則會(huì)安裝成功。 注意:--prefix
后面的參數(shù)必須是絕對(duì)路徑,不能出現(xiàn)~
,.
,..
這樣的相對(duì)路徑。echo ~
可以顯示處當(dāng)前用戶~
目錄的絕對(duì)路徑,如/home4/grad4/wzhao1
。--prefix
后面的參數(shù)簡(jiǎn)單理解,就是windows
下的安裝路徑。 注意:以上過(guò)程是自動(dòng)化編譯,./configure
這種可運(yùn)行文件一般顯示為綠色
,它的作用是根據(jù)當(dāng)前環(huán)境,制定編譯策略,即Makefile
。C/C++
語(yǔ)言與java
,python
,scala
,R
等高度現(xiàn)代化的編程語(yǔ)言不同,它的部分語(yǔ)言特性是根據(jù)編譯時(shí)環(huán)境而定的,這一點(diǎn)頗受詬病。如long
,int
型的數(shù)據(jù)類(lèi)型長(zhǎng)度竟然取決于編譯時(shí)環(huán)境。
驗(yàn)證安裝1
cd ~/python/python367/bin./python3.6
如果python
命令行正常啟動(dòng),且顯示版本也是正確的3.6.7
,則安裝成功。
備份編譯包
同一環(huán)境,尤其是同一服務(wù)器下通常不需要重新編譯,只要有人編譯出一份并備份保存,所有人都能直接下載使用。為了這個(gè)目的,以及備份的目的,我們要把編譯結(jié)果保存成壓縮包。
cd ~/pythontar cvf python367.tgz python367
建立軟連接
軟連接可以簡(jiǎn)單理解為windows
下的快捷方式,建立軟連接的目的是為了更方便地使用我們安裝的python
。從這個(gè)步驟開(kāi)始都不做,python
也能正常使用。進(jìn)入~/python/python367/bin
下查看目前的情況。
ls -lh
可以看到,軟連接是淺藍(lán)色
,并標(biāo)注了它指向的目標(biāo)。如python3 -> python3.6
,而且可以看到python3.6
的文件大小是12M,而python3
的大小是9(字節(jié))。我們建立名為python
和pip
的軟連接。
配置環(huán)境變量ln -s python3.6 pythonln -s pip3.6 pip
修改文件~/.bashrc
,添加python3.6.7
環(huán)境變量。 注意:這個(gè)文件內(nèi)的變量是用戶變量。系統(tǒng)變量在/etc/profile
。
cd ~vim .bashrc
注意:用vim
進(jìn)行編輯時(shí),不可使用鼠標(biāo)。屏幕下端是狀態(tài)欄。打開(kāi)文件時(shí),默認(rèn)為瀏覽狀態(tài)。輸入a
或i
可以進(jìn)入編輯狀態(tài)。按ESC
回到瀏覽狀態(tài),在瀏覽狀態(tài)下,輸入:q!
強(qiáng)制退出不保存,輸入:wq
保存退出。
export PYTHON_HOME="~/python/python367"export PATH="$PYTHON_HOME/bin:$PATH"
修改完環(huán)境變量后,不會(huì)立即生效。用這個(gè)命令讓環(huán)境變量立即生效。
source .bashrc
驗(yàn)證安裝2
python --versionpip --version
顯示下列結(jié)果即安裝成功
Python 3.6.7pip 10.0.1
今后該用戶的shell
里只要輸入python
和pip
,默認(rèn)就是使用剛才安裝的python
和pip
。
在python3.6.7
中安裝pytorch
下載pytorch
在 https://pytorch.org 找到合適的安裝包,得到下載鏈接后進(jìn)行下載
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
不能改名,因?yàn)?code>pip會(huì)嚴(yán)格檢查文件名是否符合當(dāng)前python
版本,不符合則拒絕安裝。
驗(yàn)證安裝
pythonimport torchimport torchvision
不報(bào)錯(cuò)則安裝成功。
在Pycharm
下使用pytorch
在新建工程的時(shí)候選擇existing interpreter
,指定之前安裝的python.exe
即可。(即~/python/python367
)對(duì)于已經(jīng)存在的工程,可以按如下步驟操作(如果project interpreter
里面有我們要的python.exe
,就不需要再add
了)
關(guān)于“Anaconda+Pycharm環(huán)境下如何配置PyTorch”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。