Сохранение состояния модели YOLOv3 и загрузка

Я пытаюсь обучить модель YOLOv3 в соответствии с документацией ImageAi с моим пользовательским набором данных, но обучение занимает слишком много времени, и времени Google Colab для этого недостаточно. Теперь как мне сохранить состояние модели и загрузить его после завершения эпохи 50/60? Поскольку я новичок, я не получаю контрольную точку модели Tensorflow t

Вот пример кода:

from imageai.Detection.Custom import DetectionModelTrainer 

trainer = DetectionModelTrainer() 
trainer.setModelTypeAsYOLOv3() trainer.setDataDirectory(data_directory="/content/drive/My Drive/Dataset") 
trainer.setTrainConfig(object_names_array=["obj1","obj2"], batch_size=4, num_experiments=421) 
trainer.trainModel()

1 ответ

Вы должны использовать ModelChekpoint в качестве обратного вызова вашего метода. Но вы используете собственный класс, который уже справляется с этим.

Если вы посмотрите код на github, вы увидите, что они используют некоторые пользовательские обратные вызовы

Они сохраняют модель после каждой эпохи только лучшей (не последней). Модель нужно сохранить в папке /models/detect_model-:

self.__model_directory = os.path.join(data_directory, "models")
self.__train_weights_name = os.path.join(self.__model_directory, "detection_model-")

Если вы хотите сохранить последнюю итерацию, вам нужно перезаписать метод для пользовательских обратных вызовов и изменить save_best_only к False.

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