Guardar modelo cada 10 épocas tensorflow.keras v2

10

Estoy usando keras definidas como submódulo en tensorflow v2. Estoy entrenando mi modelo usando el fit_generator()método. Quiero guardar mi modelo cada 10 épocas. ¿Cómo puedo conseguir esto?

En Keras (no como un submódulo de tf), puedo dar ModelCheckpoint(model_savepath,period=10). Pero en tf v2, han cambiado esto a ModelCheckpoint(model_savepath, save_freq)donde save_freqpuede estar, 'epoch'en cuyo caso el modelo se guarda cada época. Si save_freqes entero, el modelo se guarda después de que se hayan procesado tantas muestras. Pero quiero que sea después de 10 épocas. ¿Cómo puedo conseguir esto?

Nagabhushan SN
fuente

Respuestas:

5

Usando tf.keras.callbacks.ModelCheckpointuse save_freq='epoch'y pase un argumento extra period=10.

Aunque esto no está documentado en los documentos oficiales , esa es la forma de hacerlo (tenga en cuenta que está documentado que puede pasar period, simplemente no explica lo que hace).

verano azul
fuente
Recibo la siguiente advertencia: WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.Entonces, supongo, esta función se publicará pronto. En ese caso, ¿cómo puedo lograr esto?
Nagabhushan SN
2
Creo que la única alternativa es calcular la cantidad de ejemplos por época, y pasar ese número entero por save_freqla cantidad de épocas que desee como intervalo entre salvados
bluesummers
@bluesummers "ejemplos por época" Este debería ser el tamaño de mi lote, ¿verdad?
Tom
Ejemplos por época es cuántas muestras quiere pasar a través de la red entre los puntos de control, esto significa que si tiene 100 muestras (muestras! = Lote, lote es un lote de muestras) y pone 400, guardará cada 4 épocas
verano azul
1
Tenía la misma pregunta que hizo @NagabhushanSN. Calculé el número de muestras por época para calcular el número de muestras después de lo cual quiero guardar el modelo, pero no parece funcionar. Tamaño de lote = 64, para el caso de prueba estoy usando 10 pasos por época. Si quiero guardar el modelo cada 3 épocas, el número de muestras es 64 * 10 * 3 = 1920. Lo uso para sav_freq, pero el resultado muestra que el modelo se guarda en la época 1, la época 2, la época 9, la época 11, la época 14 y aún se está ejecutando. No puedo entenderlo. periodLa opción parece funcionar bien pero con el mensaje de que quedará en desuso.
beeprogrammer