Você pode usar qualquer função métrica especificada ao compilar o modelo.
Digamos que você tenha a seguinte função métrica:
def my_metric(y_true, y_pred):
return some_metric_computation(y_true, y_pred)
O único requisito para essa função é que ela aceite o y verdadeiro e o y previsto.
Ao compilar o modelo, você especifica essa métrica, da mesma forma que especifica a construção de métricas como 'precisão':
model.compile(metrics=['accuracy', my_metric], ...)
Observe que estamos usando o nome da função my_metric sem '' (em contraste com a construção em 'precisão').
Então, se você definir seu EarlyStopping, use o nome da função (desta vez com ''):
EarlyStopping(monitor='my_metric', mode='min')
Certifique-se de especificar o modo (min se menor for melhor, max se maior for melhor).
Você pode usá-lo como qualquer métrica incorporada. Provavelmente isso também funciona com outros retornos de chamada como ModelCheckpoint (mas eu não testei isso). Internamente, Keras adiciona a nova métrica à lista de métricas disponíveis para este modelo usando o nome da função.
Se você especificar dados para validação no seu model.fit (...), também poderá usá-los no EarlyStopping usando 'val_my_metric'.