Сохраняйте модель каждые 10 эпох tenorflow.keras v2


10

Я использую керасы, определенные как подмодуль в tenorflow v2. Я тренирую свою модель, используя fit_generator()метод. Я хочу сохранять свою модель каждые 10 эпох. Как мне этого добиться?

В керасе (не как подмодуль тф) могу дать ModelCheckpoint(model_savepath,period=10). Но в tf v2 они изменили это на то, ModelCheckpoint(model_savepath, save_freq)где save_freqможет быть, 'epoch'в каком случае модель сохраняется каждую эпоху. Если save_freqцелое число, модель сохраняется после обработки большого количества образцов. Но я хочу, чтобы это было после 10 эпох. Как мне этого добиться?

Ответы:


5

Используя tf.keras.callbacks.ModelCheckpointuse save_freq='epoch'и передайте дополнительный аргумент period=10.

Хотя это не задокументировано в официальных документах , это способ сделать это (обратите внимание, что задокументировано, что вы можете пройти period, просто не объясняется, что он делает).


Я получаю следующее предупреждение: WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.Итак, я думаю, эта функция скоро выйдет. В таком случае, как я могу этого добиться?
Нагабхушан С.Н.

2
Я считаю, что единственная альтернатива - это вычислить количество примеров за эпоху и передать это целое число, save_freqумноженное на количество эпох, которое вы хотите, в качестве интервала между сохранениями
bluesummers

@bluesummers "примеры на эпоху" Это должен быть мой размер партии, верно?
Том

Примеров за эпоху - сколько сэмплов вы хотите передать через сеть между контрольными точками - это означает, что если у вас есть 100 сэмплов (сэмплы! =
Сэмпл, сэмпл

1
У меня был тот же вопрос, что и @NagabhushanSN. Я рассчитал количество выборок за эпоху, чтобы рассчитать количество выборок, после чего я хочу сохранить модель, но она, похоже, не работает. Размер партии = 64, для тестового примера я использую 10 шагов за эпоху. Если я хочу сохранять модель каждые 3 эпохи, количество образцов составляет 64 * 10 * 3 = 1920. Я использую это для sav_freq, но выходные данные показывают, что модель сохраняется в эпоху 1, эпоху 2, эпоху 9, эпоху 11, эпоху 14 и все еще работает. Не могу понять это. periodОпция вроде работает нормально но с сообщением о том, что она устарела.
бипрограммист
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.