深度學習的初學者常會問『應該選擇PyTorch或 TensorFlow套件』,其實,兩者各有擅場,兩個套件的發展方向有所不同,例如在偵錯方面,PyTorch比較容易,但TensorFlow/Keras建模、訓練、預測都只要一行程式,另外,物件偵測主流演算法YOLO,第四版以TensorFlow開發,第五版則以PyTorch開發,若我們只懂TensorFlow,那就無法使用最新版了。
梯度下降法是神經網路主要求解的方法,計算過程需要大量使用張量(Tensor) 運算,另外,在反向傳導的過程中,則要進行偏微分,計算梯度,求解多層結構的神經網路,因此,大多數的深度學習套件至少會具備下列功能:
- 張量運算:包括各種向量、矩陣運算。
- 自動微分(Auto Differentiation):透過偏微分計算梯度。
- 各種神經層(Layers) 及神經網路(Neural Network) 模型構建。
所以學習的路徑可以從簡單的張量運算開始,再逐漸熟悉高階的神經層函數,以奠定扎實的基礎。
掌握到PyTorch 的核心之後, 再外擴至支援工具(TensorBoard)、移動裝置(Mobile)、佈署工具(TorchServe)、TorchScript、效能提升工具(Profiler)、平行及分散式處理…等。
本文節錄自《開發者傳授PyTorch秘笈》,由深智數位授權轉載。