Я хотел добавить нестандартную потерю для Deeplab v3, которая работала бы не с метками горячего кодирования, а с прогнозом значимости.Поэтому вместо реализации потерь Deeplab, которую вы видите ниже:
label = tf.to_int32(label > 0.2)
one_hot_labels = slim.one_hot_encoding(label, num_classes, on_value=1.0, off_value=0.0)
tf.losses.softmax_cross_entropy(one_hot_labels, logits)
, я использовал эту реализацию:
softmax = tf.log(tf.nn.softmax(logits))
cross_entropy = -tf.reduce_sum(label*softmax, reduction_indices=[1])
tf.losses.add_loss(tf.reduce_mean(cross_entropy))
Обучил ~ 1000 эпох с 5 изображениями и получил такой результат:
Кроме того, пробовал несколько скоростей обучения, но это не меняет результат для пользовательской потери.