Sie können jede Metrikfunktion verwenden, die Sie beim Kompilieren des Modells angegeben haben.
Angenommen, Sie haben die folgende Metrikfunktion:
def my_metric(y_true, y_pred):
return some_metric_computation(y_true, y_pred)
Die einzige Voraussetzung für diese Funktion ist, dass sie das wahre y und das vorhergesagte y akzeptiert.
Wenn Sie das Modell kompilieren, geben Sie diese Metrik an, ähnlich wie Sie eingebaute Metriken wie "Genauigkeit" angeben:
model.compile(metrics=['accuracy', my_metric], ...)
Beachten Sie, dass wir den Funktionsnamen my_metric ohne '' verwenden (im Gegensatz zur eingebauten 'Genauigkeit').
Wenn Sie dann Ihr EarlyStopping definieren, verwenden Sie einfach den Namen der Funktion (diesmal mit ''):
EarlyStopping(monitor='my_metric', mode='min')
Stellen Sie sicher, dass Sie den Modus angeben (min, wenn niedriger besser ist, max, wenn höher besser ist).
Sie können es wie jede integrierte Metrik verwenden. Dies funktioniert wahrscheinlich auch mit anderen Rückrufen wie ModelCheckpoint (aber das habe ich nicht getestet). Intern fügt Keras die neue Metrik lediglich unter Verwendung des Funktionsnamens zur Liste der für dieses Modell verfügbaren Metriken hinzu.
Wenn Sie in Ihrem model.fit (...) Daten für die Validierung angeben, können Sie diese auch für EarlyStopping verwenden, indem Sie 'val_my_metric' verwenden.