Vous pouvez utiliser n'importe quelle fonction métrique que vous avez spécifiée lors de la compilation du modèle.
Supposons que vous ayez la fonction métrique suivante:
def my_metric(y_true, y_pred):
return some_metric_computation(y_true, y_pred)
La seule exigence de cette fonction est qu'elle accepte le vrai y et le y prévu.
Lorsque vous compilez le modèle, vous spécifiez cette métrique, de la même manière que vous spécifiez la génération de métriques comme la «précision»:
model.compile(metrics=['accuracy', my_metric], ...)
Notez que nous utilisons le nom de la fonction my_metric sans '' (contrairement à la construction de 'precision').
Ensuite, si vous définissez votre EarlyStopping, utilisez simplement le nom de la fonction (cette fois avec ''):
EarlyStopping(monitor='my_metric', mode='min')
Assurez-vous de spécifier le mode (min si inférieur est meilleur, max si supérieur est meilleur).
Vous pouvez l'utiliser comme n'importe quelle métrique intégrée. Cela fonctionne probablement aussi avec d'autres rappels comme ModelCheckpoint (mais je n'ai pas testé cela). En interne, Keras ajoute simplement la nouvelle métrique à la liste des métriques disponibles pour ce modèle en utilisant le nom de la fonction.
Si vous spécifiez des données à valider dans votre model.fit (...), vous pouvez également les utiliser pour EarlyStopping en utilisant 'val_my_metric'.