El punto de control del modelo de Keras no funciona

8

Estoy tratando de entrenar un modelo en keras y estoy usando ModelCheckpoint para guardar el mejor modelo de acuerdo con una métrica de validación monitoreada (en mi caso, el índice Jaccard ).

Si bien puedo ver que el modelo mejora en el tensorboard, cuando trato de cargar los pesos y evaluar el modelo, no funciona en absoluto. Además, por la marca de tiempo en el archivo donde se supone que se almacenan los pesos, puedo decir que no se están guardando en absoluto. La marca de tiempo corresponde aproximadamente al momento en que comencé a entrenar.

¿Alguien ha encontrado tal problema antes?

ILM91
fuente

Respuestas:

7

¿Se ejecuta ModelCheckpointen sus parámetros predeterminados (además monitor)?

ModelCheckpointtiene un parámetro llamado modeque especifica el tipo de métrica que se utilizará. modepuede tomar 3 valores 'min' 'max'y 'auto'(que es el valor predeterminado):

  • min: significa que desea minimizar la métrica (por ejemplo, la función de pérdida).
  • max: significa que desea maximizar la métrica (p. ej., precisión).
  • auto: intenta imaginar qué hacer por sí mismo. Si observa el código , verifica si el nombre de la métrica contiene 'acc'o si comienza con 'fmeasure'. En caso afirmativo, establece el modo en max, si no lo establece min.

En su caso, monitorea el índice de jaccard, que es una métrica que desea maximizar, por lo que desea que el modo esté configurado max. Normalmente porque "jaccard" contiene la cadena "acc", incluso si el modo está configurado autodebería funcionar bien.

Sin embargo, si nombró a su métrica algo arbitrario (p my_metric. Ej. ), El modo predeterminado se establecerá en min, lo que significa que almacenará los pesos que logren el menor rendimiento en su métrica, que deberían ser los pesos de la primera época.

Sugerencia : la próxima vez intente con mode='max'seguridad.

MzdR
fuente
Sí, tiene usted razón. Había nombrado mi métrica intersection_over_uniony probablemente almacenaba pesos que tenían la puntuación más baja, que eran los de la primera época. Eso tiene mucho sentido. ¡Gracias!
ILM91
De nada. Me alegro de poder ayudar!
MzdR