
296
|
第六章:深度網路的調整
進一步加速這些計算,我們創建了 ND4J,使向量化這類的線性代數運算,可以在不同
系統與不同 GPU 執行環境之間輕鬆進行轉移。
ND4J
:一個具有自動適應能力的執行引擎
一開始打造 DL4J 時的構想,就已經考慮過要在 CPU、GPU 或平行
運算框架上運行的不同情況。在使用具有可切換(swappable)能力
的 ND4J 後端時,你就會發現它具有相當大的彈性,在執行階段時可
以給你很多的選項。
如果想要了解如何把 GPU 設為 ND4J 後端,更多相關訊息請參閱附
錄 E。
小批量數量與訓練階段的控制
我們在第 2 章介紹過小批量(mini-batch)的概念。把訓練輸入資料集分成小批量的做
法,已被證明可以讓網路的訓練更有效率。所謂的一個小批量,其中所包含的資料數
量,有可能只有 10 個輸入向量,也有可能包含整個輸入資料集。
這種方法還可以讓我們以向量化的方式,計算某些線性代數運算(特別是矩陣對矩陣
的乘法)。在這樣的應用情況下,我們可以選擇把向量化計算發送給 GPU(如果存在
的話)。
以下是關於如何控制訓練的一些關鍵術語:
階段
(Epoch)
一個階段代表的是遍歷過整個輸入資料集的過程。在找出訓練收斂的結果之前,資
料集有可能會經歷過好幾個階段的好多次訓練。
小批量數量
小批量數量指的是我們同時送進學習演算法中的資料(或向量)數量。這種做法與
我們一次只送進一筆輸入資料進行訓練的做法正好可形成對比。
批量大小與演算法學習速度兩者之間,通常是 U 形的關係(批量大小與訓練速度) ...