[英]TensorFlow keras model fit() parameters steps_per_epoch and epochs behavior on train set
我正在使用一個 tf.data 數據集,其中包含我的訓練數據,其中包含(比如說)100k 個圖像。 我也在使用包含我的驗證集的 tf.data 數據集。 由於所有 100k 圖像的 epoch 需要很長時間(在我的情況下大約一小時)才能獲得有關驗證集性能的任何反饋,因此我將 tf.keras.Model fit()
的steps_per_epoch
參數設置為10000
。 使用 1 的批量大小會導致在達到 100k 圖像時有 10 個驗證分數。 為了完成整個訓練數據集的 10 萬張圖像的一個時期,我將epochs
參數設置為10
不過,我不知道,如果使用steps_per_epoch
和epochs
這樣有什么其他后果。 使用這些參數以獲得更頻繁的性能反饋是否正確? 還有一個更具體的問題,它是使用所有 100k 圖像還是在每個“時期”使用我的訓練集的前 10k 圖像? 我已經深入研究了TensorFlow 文檔並閱讀了幾個不同的堆棧溢出問題,但我找不到任何結論來回答我自己的問題。 希望你能幫上忙!
我使用的 Tensorflow 版本是 2.2.0。
使用這些參數以獲得更頻繁的性能反饋是否正確?
是的,使用這些參數是正確的。 這是我用來擬合模型的代碼。
model.fit(
train_data,
steps_per_epoch = train_samples//batch_size,
epochs = epochs,
validation_data = test_data,
verbose = 1,
validation_steps = test_samples//batch_size)
它是使用所有 100k 圖像還是在每個“時期”使用我的訓練集的前 10k 圖像?
它使用訓練數據中的所有圖像。
為了更好地理解Epoch
是學習算法在整個訓練數據集上工作的次數。
其中, steps_per_epoch
是訓練數據集中的樣本總數除以批量大小。
例如,如果您有 100000 個訓練樣本並使用 100 的批量大小,則一個 epoch 將相當於 1000 個 steps_per_epoch。
注意:我們通常觀察批量大小為 2 的冪,這是因為優化矩陣運算庫的有效工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.