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