Я смотрю на производительность и использование графического процессора во время обучения модели CNN с Keras + TensorFlow.Подобно этому вопросу , мне трудно понять комбинированное использование Keras model.fit
steps_per_epoch
и API набора данных TensorFlow .batch()
: я установил определенный размер пакета на входеконвейер dataset = dataset.batch(batch_size)
и позже я использую
fit = model.fit(dataset, epochs=num_epochs, steps_per_epoch=training_set_size//batch_size)
, но я вижу, что на самом деле можно установить любое количество шагов за эпоху, даже больше, чем training_set_size//batch_size
.Из документации я понимаю, что на Керасе эпоха не обязательно является пропуском всего тренировочного набора, как обычно, но в любом случае я немного сбит с толку, и теперь я не совсем уверен, правильно ли я его использую.
Определяет ли dataset.batch(batch_size)
+ steps_per_epoch=training_set_size//batch_size
мини-пакет SGD, который проходит по всему обучающему набору с помощью мини-пакетов batch_size
образцов?Эпохи больше, чем один проход по тренировочному набору, если для steps_per_epoch
установлено значение, превышающее training_set_size//batch_size
?