[英]How to choose batch_size, steps_per_epoch and epoch with Keras generator
[英]Difference between Keras model.fit using only batch_size and using only steps_per_epoch
當我model.fit
使用batch_size
和steps_per_epoch
參數運行model.fit
,我收到以下錯誤:
ValueError: If steps_per_epoch is set, the `batch_size` must be None.
因此,從這個錯誤和來自 keras 模型(功能 API)的以下文檔
batch_size:整數或無。 每次梯度更新的樣本數。 如果未指定,batch_size 將默認為 32。
step_per_epoch:整數或無。 宣布一個時期結束並開始下一個時期之前的總步數(樣本批次)。 當使用輸入張量(例如 TensorFlow 數據張量)進行訓練時,默認 None 等於數據集中的樣本數除以批量大小,如果無法確定,則為 1。
我知道這兩個參數在某種程度上是等效的。 但是,在我的筆記本電腦上(使用帶有 2GB VRAM 的 GeForce 940M 顯卡並訓練 cifar10 數據集)當我運行model.fit
參數設置為 256 時,腳本運行良好,並且來自 keras 的反饋如下:
4608/50000 [=>............................] - ETA: 1:59 - loss: 0.8167 - acc: 0.7398
更新第一個數字總是添加 256 個單位。 但是,當將steps_per_epoch
作為number_train//batch_size
傳遞時,內存不足並且無法運行我的腳本,除非我將batch_size
傳遞為 1。
那么, model.fit
如何處理這些參數呢? 當我只使用其中一種而不是另一種時有什么區別?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.