Хобрук: Ваш путь к мастерству в программировании

Keras: Как сохранить вес модели во время тренировки в течение одной эпохи?

Я тренирую 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)
09.06.2019

  • Я использую только Google Colab, но каждая эпоха займет 18 часов. Как мне это сделать? 09.06.2019

Ответы:


1

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()

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

10.06.2019
Новые материалы

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

Расистский и сексистский робот, обученный в Интернете
Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

Управление состоянием в микрофронтендах
Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..

Декларативное и функциональное программирование в стиле LINQ с использованием JavaScript с использованием каррирования и генератора ...
LINQ - одна из лучших функций C #, которая обеспечивает элегантный способ написания кода декларативного и функционального стиля, который легко читать и понимать. Благодаря таким функциям ES6,..

Структуры данных в C ++ - Часть 1
Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

Как я опубликовал свое первое приложение в App Store в 13 лет
Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..