Как доза настройки 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 для более полного определения размера партии.

Другие вопросы по тегам