Керас: Как сохранить вес модели во время тренировок в течение одной эпохи? - PullRequest
0 голосов
/ 09 июня 2019

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

Я пытался сохранить вес модели, используя контрольную точку с period = 0.0125. Я думал, что это спасет вес модели на каждые 100 обучающих примеров (при условии, что общее количество обучающих примеров = 8000)

cp_callback = tf.keras.callbacks.ModelCheckpoint(checkpoint_path, verbose=1, save_weights_only=True,period=0.0125)

model.fit_generator(
    training_set,
    steps_per_epoch=8400,
    epochs=25,
    callbacks = [cp_callback],
    validation_data=test_set,
    validation_steps=2165)

1 Ответ

1 голос
/ 10 июня 2019

ModelCheckpoint сохраняет модель после каждой эпохи.Период - это интервал между эпохами, не входящими в эпоху.

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

class myCallback(keras.callbacks.Callback):
def on_batch_end(self, batch,logs={}):
    self.model.save_weights('D:/downloads/model_batch'+str(batch)+'.hdf5')

callbacks1 = myCallback()

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...