pytorch/pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

解決的問題

PyTorch 是一個提供構建與訓練深度神經網路之靈活方式的機器學習框架。它解決了需要高性能張量運算(類似於 NumPy)但又需要利用 GPU 加速以實現更快處理的問題。

工作原理

PyTorch 使用「基於 tape 的 autograd」系統進行反向模式自動微分。與靜態框架不同,這允許開發人員在執行期間動態更改網路行為而無需額外開銷。它與 Python 深度整合,允許使用者使用標準的 Python 偵錯器以及 NumPy 和 SciPy 等函式庫。該框架包含一個用於建立可優化、可序列化模型的編譯棧 (TorchScript) 以及用於高效 GPU 使用的自定義記憶體分配器。

適用對象

專為需要最大靈活性與速度的深度學習研究人員,以及正在尋找用於科學運算之 GPU 加速版 NumPy 的開發人員而設計。

亮點

  • GPU 就緒張量:用於切片、索引與線性代數的高性能張量例程,可在 CPU 或 GPU 上執行。
  • 動態神經網路:一種靈活的指令式執行模型,允許在零延遲的情況下任意更改網路行為。
  • Python 優先設計:與 Python 生態系統深度整合,允許使用 Python 或 C++ 撰寫自定義層。
  • 高效後端:整合了 Intel MKL、NVIDIA cuDNN 與 NCCL 等加速函式庫,以最大化速度並最小化記憶體開銷。