Как доза настройки steps_per_epoch и epochs влияет на результат тренировки в Keras?
Мой генератор всегда выдает два изображения из моего набора данных случайным образом, а затем я вычисляю потери, используя эти два образца. Скажи я поставил steps_per_epoch=40
а также epochs=5
какая разница, если я установлю steps_per_epoch=5
а также epochs=40
(Я использую Адама для моего оптимизатора)?
1 ответ
epochs
Аргумент (также называемый итерацией) относится к числу полных проходов по всем обучающим данным. steps_per_epoch
Аргумент относится к числу пакетов, сгенерированных за одну эпоху. Поэтому мы имеем steps_per_epoch = n_samples / batch_size
,
Например, если у нас есть 1000 обучающих образцов, и мы установили размер партии в 10, то мы имеем steps_per_epoch = 1000 / 10 = 100
, epochs
может быть установлен независимо от значения размера партии или steps_per_epoch
,
Не существует определенного значения размера пакета, подходящего для всех сценариев. Как правило, очень большой размер пакета замедляет процесс обучения (т. Е. Требуется больше времени, чтобы модель сошлась в решении), а очень маленький размер пакета может не подходить для использования доступных ресурсов (например, GPU и CPU)., Обычные значения включают 32, 64, 128, 256, 512 (степени 2 помогают быстрее распределять память GPU). Кроме того, вот ответ на SO, касающийся этой проблемы, который включает цитаты из соответствующих книг и статей. Или посмотрите на этот вопрос и его ответы на Cross Validated для более полного определения размера партии.