È possibile utilizzare qualsiasi funzione metrica specificata durante la compilazione del modello.
Supponiamo che tu abbia la seguente funzione metrica:
def my_metric(y_true, y_pred):
return some_metric_computation(y_true, y_pred)
L'unico requisito per questa funzione è che accetta il vero y e il previsto y.
Quando compili il modello, specifichi questa metrica, analogamente a come specifichi metriche incorporate come "accuratezza":
model.compile(metrics=['accuracy', my_metric], ...)
Si noti che stiamo usando il nome della funzione my_metric senza '' (in contrasto con l'accuratezza di 'accuratezza').
Quindi, se definisci EarlyStopping, usa semplicemente il nome della funzione (questa volta con ''):
EarlyStopping(monitor='my_metric', mode='min')
Assicurati di specificare la modalità (min se inferiore è meglio, max se superiore è migliore).
Puoi usarlo come qualsiasi metrica incorporata. Questo probabilmente funziona anche con altri callback come ModelCheckpoint (ma non l'ho provato). Internamente, Keras aggiunge semplicemente la nuova metrica all'elenco delle metriche disponibili per questo modello usando il nome della funzione.
Se specifichi i dati per la validazione in model.fit (...), puoi anche usarli per EarlyStopping usando 'val_my_metric'.