Сколько изображений на итерацию в Detectron2

Я новичок в использовании detectron2, просто изучаю его. Это может быть вопрос новичка, но мне действительно нужен ответ. Я не нахожу в репозитории ничего, связанного с количеством эпох.

Мы знаем, что эпоха означает однократное прохождение всех данных через модель, а пакет означает определенное подмножество всего набора данных, которое может влиять на потери посредством градиентного спуска. В этой модели (Detectron2) у нас есть нечто, называемое итерацией. Что означает эта итерация? Означает ли это прохождение одной партии через режим или эпоху (этого не должно быть, учитывая время на итерацию)

Мой вопрос: как мне узнать минимальное количество итераций, которые передадут все мои изображения в модель хотя бы один раз.

3 ответа

В detectron2 epoch является MAX_ITER * BATCH_SIZE / TOTAL_NUM_IMAGES

Я не думаю, что принятый в настоящее время ответ правильный

      single_iteration = cfg.SOLVER.NUM_GPUS * cfg.SOLVER.IMS_PER_BATCH

поэтому, если вы хотите теперь, сколько итераций вам нужно для эпохи (все изображения, просмотренные один раз), это число будет

      iterations_for_one_epoch = TOTAL_NUM_IMAGES / single_iteration

Итак, если вы хотите тренироваться в течение 20 эпох, вы должны установить MAX_ITER следующим образом:

      cfg.SOLVER.MAX_ITER = iterations_for_one_epoch * 20

Источники:

Документы Detectron2 (одна итерация - это один вызов run_step, который извлекает одну точку данных из загрузчика data = next(self._data_loader_iter))

Проблема Github в тесте MaskRCNN объясняет это аналогичным образом

Согласно этому исходному коду, итерация в терминологии Detectron2 равнаepoch.
Вы должны найти оптимальныеMAX_ITER значение экспериментально путем выбора оптимального отношения коэффициента потерь / времени поезда.

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