想學PyTorch,該從哪裡開始?

深度學習的初學者常會問『應該選擇PyTorch或 TensorFlow套件』,其實,兩者各有擅場,兩個套件的發展方向有所不同,例如在偵錯方面,PyTorch比較容易,但TensorFlow/Keras建模、訓練、預測都只要一行程式,另外,物件偵測主流演算法YOLO,第四版以TensorFlow開發,第五版則以PyTorch開發,若我們只懂TensorFlow,那就無法使用最新版了。

梯度下降法是神經網路主要求解的方法,計算過程需要大量使用張量(Tensor) 運算,另外,在反向傳導的過程中,則要進行偏微分,計算梯度,求解多層結構的神經網路,因此,大多數的深度學習套件至少會具備下列功能:

  1. 張量運算:包括各種向量、矩陣運算。
  2. 自動微分(Auto Differentiation):透過偏微分計算梯度。
  3. 各種神經層(Layers) 及神經網路(Neural Network) 模型構建。

所以學習的路徑可以從簡單的張量運算開始,再逐漸熟悉高階的神經層函數,以奠定扎實的基礎。

圖1 PyTorch 學習路徑

掌握到PyTorch 的核心之後, 再外擴至支援工具(TensorBoard)、移動裝置(Mobile)、佈署工具(TorchServe)、TorchScript、效能提升工具(Profiler)、平行及分散式處理…等。

圖2 PyTorch 其他工具與擴充模組

本文節錄自《開發者傳授PyTorch秘笈》,由深智數位授權轉載。