Вы можете попробовать это,
model.compile(optimizer='adam',
loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
metrics=['accuracy'])
Кроме того, удалите активацию softmax из последнего слоя, проблема двоичной классификации не требует softmax. Итак, что делает softmax в этом случае, так это обрезает значение всегда до 1, поскольку существует только одна вероятность, и, следовательно, сеть не тренируется. Эта ссылка может помочь вам понять softmax. Кроме того, вы можете попробовать использовать сигмовидную активацию на конечном узле. Это обрезает вывод до значения в диапазоне от 0 до 1, и вес сети не будет взорван из-за очень высоких потерь.