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?

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.