Ви можете використовувати будь-яку метричну функцію, яку ви вказали при складанні моделі.
Скажімо, у вас є така метрична функція:
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')
Обов’язково вкажіть режим (min, якщо нижчий - кращий, max, якщо вище - кращий).
Ви можете використовувати його як і будь-який вбудований показник. Це, ймовірно, також працює з іншими зворотними викликами, такими як ModelCheckpoint (але я цього не перевіряв). Внутрішньо Керас просто додає нову метрику до списку метрик, доступних для цієї моделі, використовуючи ім'я функції.
Якщо ви вказали дані для перевірки у вашому model.fit (...), ви також можете використовувати їх для EarlyStopping, використовуючи "val_my_metric".