Если вы реализуете собственную двоичную кросс-энтропийную потерю, вам также следует указать правильную метрику точности. Это потому, что если вы используете двоичную кросс-энтропию Keras, то Keras автоматически отрегулирует, какой показатель точности использовать (между двоичной и категориальной точностью).
Этого не произойдет, если вы используете нестандартную потерю, и тогда Keras по умолчанию установит категориальную точность, что на самом деле неверно, что приводит к неправильным значениям точности. Например:
model.compile(loss=custom_loss, optimizer=optimizer, metrics=['binary_accuracy'])