Możesz użyć dowolnej funkcji metrycznej określonej podczas kompilacji modelu.
Załóżmy, że masz następującą funkcję metryczną:
def my_metric(y_true, y_pred):
return some_metric_computation(y_true, y_pred)
Jedynym wymaganiem dla tej funkcji jest przyjęcie prawdziwej yi przewidywanej y.
Podczas kompilowania modelu podajesz tę metrykę, podobnie jak określasz metryki wbudowane, takie jak „dokładność”:
model.compile(metrics=['accuracy', my_metric], ...)
Zauważ, że używamy nazwy funkcji my_metric bez „” (w przeciwieństwie do wbudowanej „dokładności”).
Następnie, jeśli zdefiniujesz EarlyStopping, po prostu użyj nazwy funkcji (tym razem z ''):
EarlyStopping(monitor='my_metric', mode='min')
Upewnij się, że określono tryb (min, jeśli niższa jest lepsza, maks., Jeśli wyższa jest lepsza).
Możesz go używać tak, jak z dowolnych wbudowanych danych. Prawdopodobnie działa to również z innymi wywołaniami zwrotnymi, takimi jak ModelCheckpoint (ale tego nie testowałem). Wewnętrznie Keras dodaje nową metrykę do listy metryk dostępnych dla tego modelu, używając nazwy funkcji.
Jeśli określisz dane do sprawdzania poprawności w swoim modelu.fit (...), możesz także użyć ich do EarlyStopping, używając „val_my_metric”.