Зберігайте модель кожні 10 епох tensorflow.keras v2


10

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

У Керасі (не як підмодулі tf) я можу дати ModelCheckpoint(model_savepath,period=10). Але в tf v2 вони змінили це на те, ModelCheckpoint(model_savepath, save_freq)де save_freqможе бути, і 'epoch'в цьому випадку модель зберігається в кожну епоху. Якщо save_freqціле число, модель зберігається після обробки стільки зразків. Але я хочу, щоб це було після 10 епох. Як я можу цього досягти?

Відповіді:


5

Використовуючи tf.keras.callbacks.ModelCheckpointвикористання 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.Отже, я думаю, ця функція незабаром вимкнеться. Як у цьому випадку я можу цього досягти?
Nagabhushan SN

2
Я вважаю, що єдиною альтернативою є обчислення кількості прикладів за епоху і передавання цього цілого числа в save_freq
кратну

@bluesummers "приклади за епоху" Це має бути мій розмір партії, правда?
Том

Прикладів за епоху - скільки зразків ви хочете пройти через мережу між контрольними точками - це означає, що якщо у вас є 100 зразків (зразки! = Партія, партія зразків), і ви помістите 400, це дозволить заощадити кожні 4 епохи
блюмметери

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