模型中的超參數(batch_size、epoch、batch)


# epoch:
1個epoch指用訓練集中的全部樣本訓練一次,此時相當於batch_size 等於訓練集的樣本數。
如果epoch=50,總樣本數=10000,batch_size=20,則需要迭代500次。
# iteration: 1次iteration即迭代1次,也就是用batch_size個樣本訓練一次。每一次迭代得到的結果都會被作為下一次迭代的初始值.
# batch_size: 每批數據量的大小.用SGD的優化算法進行訓練,也就是1 次iteration一起訓練batch_size個樣本,計算它們的平均損失函數值,來更新一次參數。 # 舉例: 一個excel中包括200個樣本(數據行)的數據,選擇batch_size=5, epoch=1000, 則batch=40個,每個batch有5個樣本,一次epoch將進行40個batch或40次模型參數更新,1000個epoch,模型將傳遞整個數據集1000次,在整個訓練過程中,總共有40000次batch. # 引用例子: mnist 數據集有 60000 張訓練數據,10000 張測試數據。現在選擇 Batch_Size = 100 對模型進行訓練。 每個 epoch 要訓練的圖片數量:60000(訓練集上的所有圖像) 訓練集具有的 batch 個數: 60000/100=600 每個 epoch 需要完成的 batch 個數: 600 每個 epoch 具有的 Iteration 個數: 600(完成一個batch,相當於參數迭代一次) 每個 epoch 中發生模型權重更新的次數:600 訓練 10 個epoch后,模型權重更新的次數: 600*10=6000 不同epoch的訓練,其實用的是同一個訓練集的數據。第1個epoch和第10個epoch雖然用的都是訓練集的60000圖片,但是對模型的權重更新值卻是完全不同的。因為不同epoch的模型處於代價函數空間上的不同位置,模型的訓練代越靠后,越接近谷底,其代價越小。 總共完成30000次迭代,相當於完成了 30000/600=50 個epoch batch_size的選擇原則:batch_size越大,batch越少,需要迭代的次數越少,訓練時間越短。 batch_size越小,batch數量越多,耗時久,計算機占用內存大。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM