Мой генератор всегда случайным образом выдает два изображения из моего набора данных, а затем я вычисляю потери, используя эти два образца. Скажем, я установил steps_per_epoch=40
и epochs=5
, какая разница, если я установлю steps_per_epoch=5
и epochs=40
(я использую Адам в качестве оптимизатора)?
Как доза настройки steps_per_epoch и epochs влияет на результат обучения в Keras?
Ответы (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 (степень двойки помогает ускорить выделение памяти графического процессора). Кроме того, вот ответ на SO, который касается этого вопроса, который включает цитаты из соответствующих книг и статей. Или взгляните на этот вопрос и ответы на него на Cross Validated, чтобы получить более полное определение размера пакета.