私は、1 つのホット エンコーディング ラベルではなく、顕著性予測のために機能する 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))
5 つの画像を使用して ~1000 エポックをトレーニングし、次の結果を得ました。
- パディング付きの簡略化された画像を入力 - https://i.stack.imgur.com/07GsL.png
- グラウンド トゥルース ラベル - https://i.stack.imgur.com/ttEZi.png
- カスタム損失結果]( https://i.stack.imgur.com/cNooX.png
- 1 つのホット エンコーディング結果を使用したクロス エントロピー - https://i.stack.imgur.com/LEhl3.png
また、いくつかの学習率を試しましたが、カスタム ロスの結果は変わりません。