Anda dapat menggunakan fungsi metrik apa pun yang Anda tentukan saat menyusun model.
Katakanlah Anda memiliki fungsi metrik berikut:
def my_metric(y_true, y_pred):
return some_metric_computation(y_true, y_pred)
Satu-satunya persyaratan untuk fungsi ini adalah ia harus menerima y yang benar dan y yang diprediksi.
Saat Anda mengompilasi model, Anda menentukan metrik ini, mirip dengan cara Anda menentukan metrik build seperti 'akurasi':
model.compile(metrics=['accuracy', my_metric], ...)
Perhatikan bahwa kami menggunakan nama fungsi my_metric tanpa '' (berbeda dengan build dalam 'akurasi').
Lalu, jika Anda mendefinisikan EarlyStopping Anda, cukup gunakan nama fungsi (kali ini dengan ''):
EarlyStopping(monitor='my_metric', mode='min')
Pastikan untuk menentukan mode (min jika lebih rendah lebih baik, maks jika lebih tinggi lebih baik).
Anda dapat menggunakannya sama seperti metrik bawaan apa pun. Ini mungkin juga berfungsi dengan Callback lain seperti ModelCheckpoint (tapi saya belum mengujinya). Secara internal, Keras hanya menambahkan metrik baru ke daftar metrik yang tersedia untuk model ini menggunakan nama fungsi.
Jika Anda menentukan data untuk validasi di model.fit Anda (...), maka Anda juga dapat menggunakannya untuk EarlyStopping dengan menggunakan 'val_my_metric'.