таможенная потеря - керас - PullRequest
       10

таможенная потеря - керас

0 голосов
/ 18 апреля 2019

Следующие две модели / компиляции ведут себя по-разному:

def custom_loss(y_true, y_pred):
  return keras.losses.binary_crossentropy(y_true, y_pred)

optimizer = Adam(lr=5e-3)
model.compile(loss=custom_loss, optimizer=optimizer, metrics=['accuracy'])

И

optimizer = Adam(lr=5e-3)
model.compile(loss=keras.losses.binary_crossentropy, optimizer=optimizer, metrics=['accuracy'])

В чем может быть причина?

1 Ответ

1 голос
/ 18 апреля 2019

Если вы реализуете собственную двоичную кросс-энтропийную потерю, вам также следует указать правильную метрику точности. Это потому, что если вы используете двоичную кросс-энтропию Keras, то Keras автоматически отрегулирует, какой показатель точности использовать (между двоичной и категориальной точностью).

Этого не произойдет, если вы используете нестандартную потерю, и тогда Keras по умолчанию установит категориальную точность, что на самом деле неверно, что приводит к неправильным значениям точности. Например:

model.compile(loss=custom_loss, optimizer=optimizer, metrics=['binary_accuracy'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...