Функции потери и функции точности - это две разные метрики.
Изменение одного не изменит другого. Поэтому, если ваша задача представляет собой проблему регрессии, функция точности не изменится, и все будет в порядке (Keras использует функцию regression accuracy
для задачи регрессии). То же самое для классификации мультикласса (Keras использует функцию categorical_accuracy
для задачи мультикласса).
Но, убедитесь, что когда задание имеет двоичную классификацию, изменение функции потерь меняет вашу функцию точности с binary_accuracy
на categorical_accuracy
, и, таким образом, вы можете получить другие результаты.
Решение для это использовать двоичную точность следующим образом:
def binary_accuracy(y_true, y_pred):
return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
model.compile(loss=custom_loss,
metrics=[binary_accuracy])