⑴ batch_size,epoch,iter
batch_size:一次輸入網路的圖像數量
epoch:所有圖像通過一次網路為一個epoch
iter:一個batch_size通過一次網路為一個iter
例如:
訓練集有300張圖片
如果選擇batch_size=20,則每次(每個iter)選20張圖片輸入網路,需要訓練15次(15個iter)才能訓練完所有圖片 (300/20=15); 當圖片全部輸入完,即網路訓練15次後(15個iter),就是網路經過了一個epoch。
⑵ 神經網路 專業術語解釋(Step, Batch Size, Iteration,Epoch)
1. 名詞解釋
Step: 訓練模型的步數
Batch Size(批尺寸): 計算梯度所需的樣本數量,太小會導致效率低下,無法收斂。太大會導致內存撐不住,Batch Size增大到一定程度後,其下降方向變化很小了,所以Batch Size是一個很重要的參數。
為什麼需要有 Batch_Size :
batchsize 的正確選擇是為了在內存效率和內存容量之間尋找最佳平衡。
Epoch(回合):代表樣本集內所有的數據經過了一次訓練。
每個 epoch 都會進行shuffle,對要輸入的數據進行重新排序,分成不同的batch。
Iteration(迭代):
理解迭代,只需要知道乘法表或者一個計算器就可以了。迭代是 batch 需要完成一個 epoch 的次數。記住:在一個 epoch 中,batch 數和迭代數是相等的。
比如對於一個有 2000 個訓練樣本的數據集。將 2000 個樣本分成大小為 500 的 batch,那麼完成一個 epoch 需要 4 個 iteration。
2. 換算關系
實際上,梯度下降的幾種方式的根本區別就在於上面公式中的 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
不同代的訓練,其實用的是同一個訓練集的數據。第 代和第 代雖然用的都是訓練集的五萬張圖片,但是對模型的權重更新值卻是完全不同的。因為不同代的模型處於代價函數空間上的不同位置,模型的訓練代越靠後,越接近谷底,其代價越小。