深度学习中的batch和epoch
Batch是大小,epoch是數量
什么是Batch?
Batch大小是一個超參數,用于定義在更新內部模型參數之前要處理的樣本數。將批處理視為循環(huán)迭代一個或多個樣本并進行預測。在批處理結束時,將預測與預期輸出變量進行比較,并計算誤差。從該錯誤中,更新算法用于改進模型,例如沿誤差梯度向下移動。訓練數據集可以分為一個或多個Batch。當所有訓練樣本用于創(chuàng)建一個Batch時,學習算法稱為批量梯度下降。當批量是一個樣本的大小時,學習算法稱為隨機梯度下降。當批量大小超過一個樣本且小于訓練數據集的大小時,學習算法稱為小批量梯度下降。
在小批量梯度下降的情況下,流行的批量大小包括32,64和128個樣本。
什么是Epoch?
Epoch數是一個超參數,它定義了學習算法在整個訓練數據集中的工作次數。一個Epoch意味著訓練數據集中的每個樣本都有機會更新內部模型參數。Epoch由一個或多個Batch組成。例如,如上所述,具有一批的Epoch稱為批量梯度下降學習算法。您可以將for循環(huán)放在每個需要遍歷訓練數據集的epoch上,在這個for循環(huán)中是另一個嵌套的for循環(huán),它遍歷每批樣本,其中一個批次具有指定的“批量大小”樣本數。
epochs 數量傳統上很大,通常是數百或數千,允許學習算法運行直到模型的誤差被充分地最小化了。您可能會看到文獻和教程設置為10,100,500,1000和更大的時期數量的示例。通常創(chuàng)建線圖,其顯示沿x軸的時間以及模型在y軸上的誤差或技能。這些圖有時被稱為學習曲線。這些圖可以幫助診斷模型是否已經過度學習,學習不足或者是否適合訓練數據集。
工作實例
最后,讓我們用一個小例子來說明這一點。
假設您有一個包含200個樣本(數據行)的數據集,并且您選擇的Batch大小為5和1,000個Epoch。
這意味著數據集將分為40個Batch,每個Batch有5個樣本。每批五個樣品后,模型權重將更新。
這也意味著一個epoch將涉及40個Batch或40個模型更新。
有1000個Epoch,模型將暴露或傳遞整個數據集1,000次。在整個培訓過程中,總共有40,000Batch。
總結
以上是生活随笔為你收集整理的深度学习中的batch和epoch的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Deepin安装JDK8
- 下一篇: TamronOS IPTV系统 ping