【CV】深度学习中Epoch, Batch, Iteration的含义
生活随笔
收集整理的這篇文章主要介紹了
【CV】深度学习中Epoch, Batch, Iteration的含义
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- Epoch
使用訓練集的全部數據樣本進行一次訓練,稱為一次epoch,即所有訓練集的樣本都在神經網絡中進行了一次正向傳播和一次反向傳播
神經網絡中需要有多次epoch,每次epoch中會進行一次更新權重(weight),多次epoch后權重多次更新會變得更加準確
訓練集中樣本數量可能非常多,所以需要分成很多小塊來進行訓練,分成的小塊就是batch - Batch
將所有的訓練集的樣本分成若干個batch - Batch_Size
每個batch的大小 - Iteration(一次迭代)
訓練一個batch就是一次為lteration
batch數量計算公式:
batch數量=trainingSet_sizebatch_sizebatch數量=\frac{trainingSet\_size}{batch\_size}batch數量=batch_sizetrainingSet_size?
舉例↓:原文鏈接
mnist 數據集有 60000 張圖片作為訓練數據,10000 張圖片作為測試數據。假設現在選擇 Batch Size = 100 對模型進行訓練。迭代30000次。
- 每個 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
總結
以上是生活随笔為你收集整理的【CV】深度学习中Epoch, Batch, Iteration的含义的全部內容,希望文章能夠幫你解決所遇到的問題。