Как продолжить обучение модели обнаружения объектов с помощью API Tensorflow Object Detection? - PullRequest
0 голосов
/ 01 ноября 2018

Я использую API обнаружения объектов Tensorflow для обучения модели обнаружения объектов с использованием обучения переноса. В частности, я использую ssd_mobilenet_v1_fpn_coco из модели zoo и использую образец конвейера , предоставленный , конечно же заменив заполнители фактическими ссылками на мои учебные и eval tfrecords и метки.

Я смог успешно обучить модель на моих ~ 5000 изображениях (и соответствующих ограничивающих прямоугольниках), используя вышеупомянутый конвейер (я использую в основном Google Engine ML на TPU, если это возможно).

Теперь я подготовил дополнительно ~ 2000 изображений и хотел бы продолжить обучение моей модели с этими новыми изображениями, не перезапуская ее с нуля (обучение исходной модели заняло ~ 6 часов времени ТПУ). Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

У вас есть два варианта, в обоих вам нужно изменить input_path из train_input_reader вашего нового набора данных:

  1. При указании контрольной точки для точной настройки в конфигурации обучения укажите контрольную точку вашей обученной модели. train_config{ fine_tune_checkpoint: <path_to_your_checkpoint> fine_tune_checkpoint_type: true load_all_detection_checkpoint_vars: true }
  2. Просто продолжайте использовать ту же конфигурацию (кроме train_input_reader) с той же model_dir вашей предыдущей модели. Таким образом, API создаст график и пока не проверит, существует ли контрольная точка в model_dir и соответствует ли график. Если это так - он восстановит его и продолжит тренировать.
0 голосов
/ 01 ноября 2018

Я не переобучал модель обнаружения объекта в новом наборе данных, но похоже, для этого должно быть достаточно увеличить количество обучающих шагов train_config.num_steps в файле конфигурации, а также добавить изображения в файлы tfrecord.

...