當前位置: 首頁>>機器學習>>正文


PyTorch入門簡介

PyTorch是一個python包,提供兩類高級功能:

  • 具有強大的GPU加速度的張量計算(類似numpy)
  • 基於tape-based的自動微分(autodiff)係統的深度神經網絡

您可以重用自己喜歡的python包,例如numpy,scipy和Cython,以便在需要時擴展PyTorch。

從更細的粒度來說,PyTorch是一個由以下組件組成的庫:

描述
torch 像NumPy這樣的Tensor庫,具有強大的GPU支持
torch.autograd 基於tape的自動微分庫,支持torch中所有可微分的Tensor操作
torch.nn 與autograd深度集成的神經網絡庫,旨在實現最大的靈活性
torch.optim 與torch.nn一起使用的優化包,使用標準優化方法,如SGD,RMSProp,LBFGS,Adam等。
torch.multiprocessing python多處理,但具有神奇的內存共享跨進程傳遞torch Tensor。適用於數據加載和hogwild訓練。
torch.utils 為DataLoader,Trainer和其他實用程序功能提供便捷的輔助包
torch.legacy(.nn /.optim) 由於向後兼容性原因而從torch移植過的遺留代碼

通常使用PyTorch作為:

  • 替代numpy使用GPU強大能力。
  • 深度學習研究平台,提供最大的靈活性和速度

進一步闡述:

為GPU而生的Tensor庫

如果你使用numpy,那麽你使用了Tensors(a.k.a ndarray)。

tensor_illustration

PyTorch提供可以在CPU或GPU上運行的Tensors,並且可以大幅加速計算。

我們提供各種張量程序,以加速和滿足您的科學計算需求,如切片,索引,數學運算,線性代數,約簡。這些操作都非常快!

動態神經網絡:基於磁帶模式的Autograd

PyTorch有一種獨特的構建神經網絡的方法:使用和重放錄音機。

大多數框架如TensorFlowTheanoCaffeCNTK有一個靜態的世界觀。人們必須建立一個神經網絡,並一次又一次地重複使用相同的結構。改變網絡的行為方式意味著必須從頭開始。

使用PyTorch,我們使用一種名為Reverse-mode auto-differentiation的技術,它允許您以零滯後或開銷任意改變網絡的行為方式。我們的靈感來自幾個關於這個主題的研究論文,以及當前和過去的工作,如autogradautogradChainer

雖然這種技術並不是PyTorch獨有的,但它是迄今為止最快的實現之一。您可以獲得最佳的速度和靈活性,以進行狂熱的研究。

dynamic_graph

Pytorch跟Python的關係

PyTorch不是Python綁定到monolothic C++的框架。它被構建為深入集成到Python中。您可以像使用numpy /scipy /scikit-learn等自然地使用它。您可以使用自己喜歡的庫編寫新的神經網絡層,使用Cython和Numba等軟件包。我們的目標是在適當的時候不要重新發明輪子。

體驗

PyTorch設計直觀,線性思維,易於使用。當您執行一行代碼時,它會被執行。沒有所謂的全運行環境的異步視圖。當您進入調試器或接收錯誤消息和堆棧跟蹤時,理解它們是straight-forward。 stack-trace指向您的代碼定義的確切位置。我們希望您不要因為堆棧跟蹤錯誤或異步和不透明的執行引擎,而花費數小時調試代碼。

快速和精益

PyTorch具有最小的框架開銷。我們集成了英特爾MKL和NVIDIA(CuDNN,NCCL)等加速庫,以最大限度地提高速度。其核心是CPU和GPU Tensor和神經網絡後端(TH,THC,THNN,THCUNN)作為具有C99 API的獨立庫編寫。
它們已經成熟並經過多年的測試。

因此,PyTorch非常快 – 無論你運行小型還是大型神經網絡。

與Torch或其他一些替代方案相比,PyTorch中的內存使用效率非常高。我們為GPU編寫了自定義內存分配器,以確保您的深度學習模型具有最大的內存效率。這使您能夠訓練比以前更大的深度學習模型。

擴展沒有痛苦

編寫新的神經網絡模塊,或與PyTorch的Tensor API連接,設計為straight-forward,並且具有最少的抽象。

您可以使用torch API在Python中編寫新的神經網絡層或者你最喜歡的基於numpy的庫,比如SciPy

如果您想用C/C++編寫圖層,我們會提供基於CFFI的擴展API,這是有效的,並且具有最少的樣板。
沒有需要編寫的包裝代碼。你可以在這裏看到一個例子

參考資料

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3886.html,未經允許,請勿轉載。