Я реализовал нейронную сеть в Tensorflow, где последний слой является сверточным слоем, я передаю вывод этого сверточного слоя в функцию активации softmax, а затем передаю его в функцию потери кросс-энтропии, которая определяется следующим образом вместе с метками но проблема в том, что я получил NAN как результат моей функции потерь, и я понял, что это потому, что у меня 1 на выходе softmax. Итак, у меня вопрос: что мне делать в этом случае? Мой вход - изображение 16 на 16, где у меня есть 0 и 1 в качестве значений каждого пикселя (двоичная классификация)
Моя функция потерь:
#Loss function
def loss(prediction, label):
#with tf.variable_scope("Loss") as Loss_scope:
log_pred = tf.log(prediction, name='Prediction_Log')
log_pred_2 = tf.log(1-prediction, name='1-Prediction_Log')
cross_entropy = -tf.multiply(label, log_pred) - tf.multiply((1-label), log_pred_2)
return cross_entropy
tf.nn.softmax_cross_entropy_with_logits_v2
или _ 2_ для этого, используя выходные данные последнего уровня перед активацией softmax ( логиты). Эти функции предназначены для правильной обработки крайних случаев. - person jdehesa   schedule 21.06.2019