[英]Keras Sequence, fit_generator and steps_per_epoch
我注意到使用fit_generator
, steps_per_epoch
參數通常被賦予total_samples//batch_size
,其中可以創建生成器/使用ImageDataGenerator
並將其作為參數傳遞給fit_generator
。
但是我使用Sequence
類( keras.utils.Sequence()
)來創建我的生成器並傳遞steps_per_epoch
一個小於total_samples//batch_size
的整數。
我想知道的是,每個時代完成后,生成器中的數據生成是從頭開始的嗎?
例如,我的訓練集中有3200個樣本,我使用32的批量大小。理想情況下,對於一個完整的紀元,我應該將steps_per_epoch
設置為100.但是,如果我將steps_per_epoch
設置為50,會發生什么? 一旦完成第一個紀元,將生成數據點編號1601(32 * 50)還是從頭開始(數據點編號1)?
使用Sequence
,您不需要傳遞steps_per_epoch
,因為可以從Sequence.
的__len__
方法推斷出此信息Sequence.
如果你在使用Sequence
傳遞steps_per_epoch
,這將覆蓋__len__
方法的任何使用,它實際上只會使用你序列中的steps_per_epoch
樣本(從0到steps_per_epoch - 1
),它會在紀元結束時重置為零。 您可以在keras源代碼中檢查此行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.