更新提醒:本文已過期,PyTorch1.5正式版已在2020年4月21發佈,Windows下安裝最新的PyTorch1.5請移步本人另一篇博客:Windows下安裝PyTorch1.5。
PyTorch簡介
在2017年1月18日,facebook
下的Torch7
團隊宣佈PyTorch
開源後就引來了劇烈的反響。PyTorch
是 Torch
在 Python
上的衍生版本。Torch
是一個使用 Lua
語言的神經網絡庫, Torch
很好用, 但是 Lua
流行度不夠, 所以facebook
開發團隊將 Lua
的 Torch
移植到了更流行的語言 Python
上,推出了PyTorch
。
PyTorch
是一個Python
優先的深度學習框架,是一個和tensorflow,Caffe,MXnet
一樣,非常底層的框架。先說下PyTorch
相比於Tensorflow
的三大優勢:
一.Python優先支持
PyTorch主推的特性之一,就是支持Python(官方的提法:puts Python first
)。因爲直接構建自 Python C API,PyTorch
從細粒度上直接支持python的訪問。相比於原生Python
實現,引入的新概念很少,這不僅降低了 Python
用戶理解的門檻,也能保證代碼基本跟原生的 Python
實現一致。事實上,開發者可以直接用原生 Python
代碼擴展 PyTorch
的 operation
。
而Tensorflow
總有一種用 Python
調用 C++
寫的第三方動態鏈接庫的感覺;寫模型需要更多代碼,無法貫徹 Python
的簡約風格;而且寫新的 operation
必須用 C++
開發。
二.動態圖的良好支持
Tensorflow
運行必須提前建好靜態計算圖,然後通過feed
和run
重複執行建好的圖。但是Pytorch
卻不需要這麼麻煩:PyTorch
的程序可以在執行時動態構建/調整計算圖。相對來說,pytorch具有更好的靈活性。這得益於PyTorch
直接基於 Python C API
構建的 Python
接口。
TensorFlow
飽受詬病的痛點就是隻支持靜態圖模型。也就是說,在處理數據前必須預先定義好一個完整的模型。如果數據非常規整,那還好。但實際工程和研究項目中的數據,難免有一些邊角的情況。很多項目,其實需要大量實驗才能選擇正確的圖模型。這就很痛苦了。因此,很多項目轉而採用了PyTorch
等支持動態圖模型的框架,以便在運行程序的時候動態修正模型。
不過在2017年10月31日萬聖節這天,Google
發佈了TensorFlow Eager Execution
(貪婪執行),爲TensorFlow
添加了命令式編程的接口。啓用貪婪執行後,TensorFlow
操作會立刻執行,不用通過Session.run()
執行一個預先定義的圖。2017年11月,TensorFlow1.5
版本中正式加入了動態圖機制Eager Execution
的支持!
三.易於Debug
Pytorch在運行時可以生成動態圖,開發者就可以在堆棧跟蹤中看到哪一行代碼導致了錯誤。你甚至可以在調試器中停掉解釋器並看看某個層會產生什麼。
PyTorch的Windows版本安裝
2018年12月8日,Pytorch1.0
正式發佈,源碼地址:https://github.com/pytorch/pytorch/releases
。這次最新的Pytorch1.0
有很多重大的更新,分佈式更好用了,其實最重要的應該是C++
的前端支持,部署更方便,效率更高,使得Pytorch
往產品化方面又邁進了堅實的一步。
我們可以直接在Pytorch官網尋找自己所需的最新的版本進行安裝。目前Pytorch1.0
支持Python2.7
,Python3.5
,Python3.6
和Python3.7
等多個Python
版本。
Conda安裝
如果已經裝了Ananconda|Python
,不管是Python3.5
,Python3.6
還是Python3.7
,都可以選擇對應的cuda版本,然後直接執行下面命令安裝:
conda install pytorch torchvision cuda80 -c pytorch #for cuda8
conda install pytorch torchvision -c pytorch #for cuda9
conda install pytorch torchvision cuda100 -c pytorch #for cuda10
conda install pytorch-cpu torchvision-cpu -c pytorch # for cpu version
注意:Conda
安裝只支持Python3
,如果你的Ananconda|Python
是Python2
版本,請用pip
方式安裝。
pip安裝
這裏只提示一點,pip可以安裝Python2
的Pytorch1.0
的cpu版本,如果要安裝gpu版本,請升級到Python3
:
Python2.7 cpu
版本:
pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp27-cp27mu-linux_x86_64.whl
pip install torchvision
如果上面不行,請執行:
pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp27-cp27m-linux_x86_64.whl
pip install torchvision
Python3.5
各個版本:
pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp35-cp35m-win_amd64.whl #cpu version
pip install https://download.pytorch.org/whl/cu80/torch-1.0.0-cp35-cp35m-win_amd64.whl #cuda8.0
pip install https://download.pytorch.org/whl/cu90/torch-1.0.0-cp35-cp35m-win_amd64.whl #cuda9.0
pip install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp35-cp35m-win_amd64.whl #cuda10.0
pip install torchvision
Python3.6
各個版本:
pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp36-cp36m-win_amd64.whl #cpu version
pip install https://download.pytorch.org/whl/cu80/torch-1.0.0-cp36-cp36m-win_amd64.whl #cuda8.0
pip install https://download.pytorch.org/whl/cu90/torch-1.0.0-cp36-cp36m-win_amd64.whl #cuda9.0
pip install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-win_amd64.whl #cuda10.0
pip install torchvision
Python3.7
各個版本:
pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp37-cp37m-win_amd64.whl #cpu version
pip install https://download.pytorch.org/whl/cu80/torch-1.0.0-cp37-cp37m-win_amd64.whl #cuda8.0
pip install https://download.pytorch.org/whl/cu90/torch-1.0.0-cp37-cp37m-win_amd64.whl #cuda9.0
pip install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp37-cp37m-win_amd64.whl #cuda10.0
pip install torchvision
測試安裝是否成功
import torch
print(torch.__version__)
如果輸出1.0.0
,那麼恭喜Windows下的PyTorch1.0.0
安裝成功!