Вы можете использовать любую метрическую функцию, указанную при компиляции модели.
Допустим, у вас есть следующая метрическая функция:
def my_metric(y_true, y_pred):
return some_metric_computation(y_true, y_pred)
Единственное требование к этой функции состоит в том, что она принимает истинный y и предсказанный y.
Когда вы компилируете модель, вы указываете эту метрику, аналогично тому, как вы указываете встроенные метрики, такие как «точность»:
model.compile(metrics=['accuracy', my_metric], ...)
Обратите внимание, что мы используем имя функции my_metric без «» (в отличие от встроенной «точности»).
Затем, если вы определите свой EarlyStopping, просто используйте имя функции (на этот раз с ''):
EarlyStopping(monitor='my_metric', mode='min')
Обязательно укажите режим (мин, если ниже, тем лучше, макс, если выше, тем лучше).
Вы можете использовать его как любую встроенную метрику. Это, вероятно, также работает с другими обратными вызовами, такими как ModelCheckpoint (но я не проверял это). Внутренне, Keras просто добавляет новую метрику в список метрик, доступных для этой модели, используя имя функции.
Если вы указываете данные для проверки в своем model.fit (...), то вы также можете использовать их для EarlyStopping с помощью 'val_my_metric'.