卷积神经网络训练的三个概念(Epoch,Batch,Iteration)
總結下訓練神經網絡中最最基礎的三個概念:Epoch(訓練多少輪), Batch(每次輸入網絡樣本的個數), Iteration(迭代次數)。
1.名詞解釋
| Epoch | 使用訓練集的全部數據,對模型進行一次完整訓練,稱之為“一代訓練” |
| Batch | 使用訓練集中的一小部分樣本,對模型權重進行一次反向傳播的參數更新,這一小部分樣本被稱為“一批數據” |
| Iteration | 使用一個Batch數據,對模型進行一次參數更新的過程,稱之為“一次訓練” |
-
epoch:訓練時,所有訓練數據集都訓練過一次。
-
batch_size:在訓練集中選擇一組樣本用來更新權值。1個batch包含的樣本的數目,通常設為2的n次冪,常用的包括64,128,256。 網絡較小時選用256,較大時選用64。
-
iteration?:訓練時,1個batch訓練圖像通過網絡訓練一次?(一次前向傳播+一次后向傳播),每迭代一次權重更新一次;測試時,1個batch測試圖像通過網絡一次?(一次前向傳播)。所謂iterations就是完成一次epoch所需的batch個數
2.換算關系
Numberofbatches=TrainingsetsizeBatchsizeNumber of batches={{Training set size}\over{Batch size}}Numberofbatches=BatchsizeTrainingsetsize?
| BGD | N | N | 1 |
| SGD | N | 1 | N |
| Mini-Batch SGD | N | B | N/B+1 |
實際上,梯度下降的幾種方式的根本區別就在于上面公式中的 Batch Size不同。
*注:上表中 Mini-Batch 的 Batch 個數為 N / B + 1 是針對未整除的情況。整除則是 N / B。
3.示例
CIFAR10 數據集有 50000 張訓練圖片,10000 張測試圖片。現在選擇 Batch Size = 256 對模型進行訓練。
每個 Epoch 要訓練的圖片數量:50000
訓練集具有的 Batch 個數:50000 / 256 = 195 + 1 = 196
每個 Epoch 需要完成的 Batch 個數:196
每個 Epoch 具有的 Iteration 個數:196
每個 Epoch 中發生模型權重更新的次數:196
訓練 10 代后,模型權重更新的次數:196 * 10 = 1960
不同代的訓練,其實用的是同一個訓練集的數據。第 1 代和第 10 代雖然用的都是訓練集的五萬張圖片,但是對模型的權重更新值卻是完全不同的。因為不同代的模型處于代價函數空間上的不同位置,模型的訓練代越靠后,越接近谷底,其代價越小。
總結
以上是生活随笔為你收集整理的卷积神经网络训练的三个概念(Epoch,Batch,Iteration)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 154. 寻找旋转排序数组中的最小值 I
- 下一篇: 使用GRUB Multiboot2引导自