В двоичной классификации, какой класс выбирает Keras, если значения softmax равны?

#keras

Вопрос:

Я намеренно сделал последний плотный/Softmax слой своей сети для вывода [0,5 0,5]:

 ....

outputs = layers.Dense(2, activation='softmax')(x)

model = keras.Model(inputs=inputs, outputs=outputs)

model.compile(loss="categorical_crossentropy", optimizer="adam")

model.predict(SOME_INPUT)
 

какие результаты:

 [[0.5 0.5]]
 

вопрос:

Во время обучения, как Керас выбирает между классами 0 и 1 ?

Если оба значения softmax равны 0,5, как здесь, какой класс он выберет ?

Кроме того, как я могу отобразить выбранный класс из своего кода ? (Я имею в виду, есть ли другая функция, кроме predict, для вывода выбранного класса вместо значений Softmax ?)

Спасибо!

Комментарии:

1. Я считаю, что Keras работает только с вероятностями и пытается минимизировать перекрестную энтропию, он не выбирает класс. Если вы хотите получить класс с наибольшей вероятностью в качестве выходного, вы можете округлить до ближайшего целого числа.