我正在使用 tf.data 數據集,其中包含由(比方說)100k 圖像組成的訓練數據。我還使用包含我的驗證集的 tf.data 數據集。由于所有 100k 圖像的 epoch 需要相當長的時間(在我的例子中大約一小時)才能獲得驗證集性能的任何反饋,因此我將steps_per_epochtf.keras.Model 中的參數設置fit()為10000。使用批量大小為 1 的結果是,當圖像數量達到 100k 時,驗證分數為 10。為了完成整個訓練數據集的 10 萬張圖像的一個 epoch,我將參數設置epochs為10但是,我不確定使用steps_per_epochandepochs這種方式是否會產生任何其他后果。使用這些參數以獲得更頻繁的性能反饋是否正確?還有一個更具體的問題,它是使用所有 100k 圖像還是在每個“時期”使用我的訓練集的相同前 10k 圖像?我已經深入研究了TensorFlow 文檔并閱讀了幾個不同的堆棧溢出問題,但我找不到任何結論性的東西來回答我自己的問題。希望您能幫忙!我使用的Tensorflow版本是2.2.0。
1 回答

喵喵時光機
TA貢獻1846條經驗 獲得超7個贊
使用這些參數以獲得更頻繁的性能反饋是否正確?
是的,使用這些參數是正確的。這是我用來擬合模型的代碼。
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學習算法在整個訓練數據集上工作的次數。
其中 assteps_per_epoch是訓練數據集中的樣本總數除以批量大小。
例如,如果您有 100000 個訓練樣本并使用 100 的批量大小,則一個 epoch 將相當于 1000 steps_per_epoch。
注意:我們通常觀察批量大小為 2 的冪,這是因為優化矩陣運算庫的有效工作。
添加回答
舉報
0/150
提交
取消