PyTorch:深度學學習框架PyTorch的簡介、安裝、使用方法之詳細攻略

PyTorch的簡介
       pytorch是一個python優先的深度學習框架,是一個和tensorflow,Caffe,MXnet一樣,非常底層的框架。     
       Torch官網:https://pytorch.org/
       Torch官網的gitHub:https://github.com/torch/torch7
       pypi torch :  https://pypi.org/project/torch/

       Torch 自稱爲神經網絡界的 Numpy, 因爲他能將 torch 產生的 tensor 放在 GPU 中加速運算 (前提是你有合適的 GPU), 就像 Numpy 會把 array 放在 CPU 中加速運算. 所以神經網絡的話, 當然是用 Torch 的 tensor 形式數據最好。 就像 Tensorflow 當中的 tensor 一樣。pytorch是一個動態的建圖的工具。不像Tensorflow那樣,先建圖,然後通過feed和run重複執行建好的圖。相對來說,pytorch具有更好的靈活性。
      如圖所示,Torch已經實現了很多庫,比如ML、RL等
(1)、比如查詢BatchNormalization算法的實現

1、pytorch的三大優勢
(1)、Python優先支持策略:Pytorch主推的特性之一,就是支持python(官方的提法:puts Python first)。因爲直接構建自 Python C API,Pytorch從細粒度上直接支持python的訪問。相比於原生Python實現,引入的新概念很少,這不僅降低了 python 用戶理解的門檻,也能保證代碼基本跟原生的 python 實現一致。事實上,開發者可以直接用原生 python 代碼擴展 Pytorch 的 operation。
(2)、動態圖的良好支持:Tensorflow運行必須提前建好靜態計算圖,然後通過feed和run重複執行建好的圖。但是Pytorch卻不需要這麼麻煩:PyTorch的程序可以在執行時動態構建/調整計算圖。相對來說,pytorch具有更好的靈活性。這得益於Pytorch直接基於 python C API 構建的 python 接口。
(3)、易於Debug:Pytorch在運行時可以生成動態圖,開發者就可以在堆棧跟蹤中看到哪一行代碼導致了錯誤。你甚至可以在調試器中停掉解釋器並看看某個層會產生什麼。
(4)、通常使用PyTorch可以使用GPU的功能代替numpy。 一個深刻的學習研究平臺,提供最大的靈活性和速度。
2、pytorch和tensorflow相互PK
    在便利性和上手難度上,pytorch遠勝於tensorflow,原因是pytorch是基於動態圖,而tensorflow是基於靜態計算圖,因此pytorch能隨時打印tensor的值,但是Tensorflow需要設置回調的方法才能打印,如果想在tensorflow中想判斷一個變量的值的正確性,只能使用assert方法,這一點確實tensorflow不及pytorch,而在上手難度上pytorch也是比tensorflow容易。

 

PyTorch的安裝

pip install torch
pip install torch==0.4.1.post2
 
 
T1方法
git clone https://github.com/pytorch/vision
cd vision
python setup.py install
T2方法
pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.0-cp36-cp36m-win_amd64.whl 
pip3 install torchvision
 
T3方法
pip install torch-0.4.0-cp36-cp36m-win_amd64.whl
pip install torchvision

1、20181114更新版本到 torch-0.4.1

pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl
pip3 install torchvision

(1)、測試

import torch  
print(torch.__version__)          #輸出版本信息
print(torch.cuda.is_available())  #查看是否支持cuda

 

PyTorch的使用方法
一、Torch運算命令
1、三行命令即可運算

二、Pytorch
1、PyTorch是一個提供兩個高級功能的python包:  
具有強GPU加速度的張量計算(如numpy) 
深層神經網絡建立在基於磁帶的自動調整系統上 
  可以重用您最喜愛的python軟件包,如numpy,scipy和Cython,以便在需要時擴展PyTorch。  
2、PyTorch在細粒度級別是由以下組件組成的庫:
torch   像NumPy這樣的Tensor圖書館,擁有強大的GPU支持 
torch.autograd   一種基於磁帶的自動分類庫,支持所有可區分的Tensor操作手電筒。pytorch的自動求導工具包在torch.autograd中。
torch.nn   一個神經網絡庫與autograd設計了最大的靈活性。pytorch神經網絡構建很容易,主要使用的包是torch.nn這個包,可以嘗試使用pytorch構建一個簡單的二層神經網絡結構。

torch.optim   一種與torch.nn一起使用的優化包,具有標準優化方法,如SGD,RMSProp,LBFGS,Adam等。 
torch.multiprocessing   python多處理,但是具有魔法內存共享的手電筒傳感器跨過程。適用於數據加載和hogwild培訓。
torch.utils   DataLoader,Trainer等實用功能爲方便起見 torch.legacy(.nn / .optim) 由於向後兼容性原因,已經從割炬移植的舊代碼 。

 

參考文獻

PyTorch官網

PyTorch中文文檔

pytorch入門

pytorch 學習筆記(一)

Win10 Python3.6下安裝PyTorch

原文:https://blog.csdn.net/qq_41185868/article/details/80152596 

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