Pytorch介紹與linux、windows環境下安裝

1. 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的三大優勢:

1.1 Python優先支持

       PyTorch主推的特性之一,就是支持Python(官方的提法:puts Python first)。因爲直接構建自 Python C API,PyTorch從細粒度上直接支持python的訪問。相比於原生Python實現,引入的新概念很少,這不僅降低了 Python 用戶理解的門檻,也能保證代碼基本跟原生的 Python 實現一致。事實上,開發者可以直接用原生 Python 代碼擴展 PyTorch 的 operation。

       而Tensorflow總有一種用 Python 調用 C++ 寫的第三方動態鏈接庫的感覺;寫模型需要更多代碼,無法貫徹 Python的簡約風格;而且寫新的 operation 必須用 C++ 開發。

1.2 動態圖的良好支持

      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的支持!

1.3 易於Debug
       Pytorch在運行時可以生成動態圖,開發者就可以在堆棧跟蹤中看到哪一行代碼導致了錯誤。你甚至可以在調試器中停掉解釋器並看看某個層會產生什麼。
1.4 pytorch官網

https://pytorch.org/get-started/previous-versions/

2.linux、windows環境下安裝

2.1 pytorch v1.1.0在不同cuda版本下安裝

Conda命令安裝:Linux and Windows

如果已經裝了Ananconda|Python,選擇對應的pytorch與 torchvision版本,然後直接執行下面:

# CUDA 9.0
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorch

# CUDA 10.0
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=10.0 -c pytorch

# CPU Only
conda install pytorch-cpu==1.1.0 torchvision-cpu==0.3.0 cpuonly -c pytorch

pip命令安裝:Linux and Windows

pip install torch==1.1.0 torchvision==0.3.0

 2.2 pytorch v1.2.0在不同cuda版本下安裝

conda安裝:Linux and Windows

# CUDA 9.2
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=9.2 -c pytorch

# CUDA 10.0
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch

# CPU Only
conda install pytorch==1.2.0 torchvision==0.4.0 cpuonly -c pytorch

pip安裝:Linux and Windows​​​​​​​

# CUDA 10.0
pip install torch==1.2.0 torchvision==0.4.0 -f https://download.pytorch.org/whl/torch_stable.html

# CUDA 9.2
pip install torch==1.2.0+cu92 torchvision==0.4.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html

# CPU only
pip install torch==1.2.0+cpu torchvision==0.4.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

 3.下載的時候可能會遇到無盡的等待:添加清華源

3.1 當使用conda安裝的時候,可能會遇到下載過慢的問題

這裏推薦用清華源替代默認conda源的方法,可以解決下載過慢的問題。

清華conda源地址:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

3.2 添加清華源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

3.3 命令安裝

根據Python和CUDA選擇對應的版本,然後官方給出提示可通過運行:

conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit==9.0 -c pytorch

但是這裏一定要注意,去掉-c pytorch,安裝的時候纔會默認從清華源下載相應的包,因此這裏用命令行:

conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit==9.0 -c pytorch

參考致謝:

https://blog.csdn.net/xiangxianghehe/article/details/86300773

https://blog.csdn.net/watermelon1123/article/details/88122020

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章