回覆列表
-
1 # Deeplearning初學者
-
2 # 飛昇的碼農
通常情況下,神經網路需要訓練大量的樣本,使得結果收斂從而擬合實際情況。
但是,當訓練樣本的數量十分巨大的時候,我們不可能將所有資料一起讀入記憶體,然後訓練,這就需要將這些資料分成多組進行訓練。
神經網路訓練一組資料稱為batch,batch的size指的是這組訓練資料的數量。
假設訓練資料滿足正態分佈,那麼,batch的size越大,這一組資料與訓練資料越容易擬合即特徵損失越小,那麼就會有越好的收斂效果和效率。
但是size太大,記憶體又會不足,batch的size的選擇應該根據需要達到時間,空間,效果的平衡。
除此之外,BatchNormalization也可以大大提高訓練的效果和收斂速率。
一次輸入網路中的樣本數。
理想情況下batchsize最好就是所有訓練樣本數,因為記憶體視訊記憶體限制,不現實。所以就用少量的樣本近似整個訓練集。
因此,batchsize越大,訓練越容易收斂,學習速率也就可以大一些。
一個batch內的樣本抽樣最好是覆蓋所有種類的樣本,儘可能的模擬原訓練集的分佈,這樣訓練容易收斂點。