Сохранение состояния модели 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, вы увидите, что они используют некоторые пользовательские обратные вызовы
Они сохраняют модель после каждой эпохи только лучшей (не последней). Модель нужно сохранить в папке
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
.