天天看點

Epoch、Batch Size、Iteration三者概念與差別1 Epoch2 Batch Size3 Iteration4 示例5 參考文獻

文章目錄

  • 1 Epoch
  • 2 Batch Size
  • 3 Iteration
  • 4 示例
  • 5 參考文獻

在神經網絡訓練中,有三個概念:Epoch、Batch Size、Iteration。下面對三者的概念與差別進行介紹。

1 Epoch

Epoch,一次完整訓練,即"一代訓練"。當一個完整的資料集通過了神經網絡一次并且傳回了一次,這個過程稱為一個Epoch。

需要将完整的資料集在同樣的神經網絡中傳遞多次,僅僅更新權重一次或者說使用一個Epoch是不夠的,選擇合适的Epoch的數量取決于資料的多樣性等因素。

在不能将資料一次性通過神經網絡的時候,就需要将資料集分成幾個Batch,見【2 Batch Size】一節。

2 Batch Size

Batch Size,批量大小,即一次訓練所選取的樣本數。由于在資料很龐大的時候,一次性将資料輸入計算機是不可能的,可以把資料分成小塊,一塊一塊的傳遞給計算機。在小樣本數的資料庫中,不使用Batch Size是可行的,而且效果也很好。但是一旦是大型的資料庫,一次性把所有資料輸進網絡,肯定會引起記憶體的爆炸。是以就提出Batch Size的概念。

3 Iteration

Iteration,算法是疊代的,意思是需要多次使用算法擷取結果,以得到最優化結果。疊代是将資料分塊後需要完成一個Epoch的次數,即完整的資料集通過了神經網絡一次并且傳回了一次所需的次數。

在一個Epoch中,Batch數和疊代數是相等的。Batch數是将資料被分成批次的數量,需要與批量大小即Batch Size區分開。

4 示例

比如對于一個有2000個訓練樣本的資料集,将2000個樣本分成大小為500的Batch。那麼:

  • 完成一個Epoch需要4個Iteration。
  • Batch數也為4。
  • Batch Size為500。

5 參考文獻

1、神經網絡訓練中,傻傻分不清Epoch、Batch Size和疊代

2、神經網絡中Batch Size的了解

END

繼續閱讀