問題タブ [cross-entropy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Tensorflow: クロス エントロピー損失を伴う加重スパース ソフトマックス
完全な畳み込みニューラル ネットワークを使用して画像のセグメンテーションを行っています (論文へのリンク): https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf
これは、ピクセルの分類と見なすことができます (最終的に、各ピクセルはラベルを取得します)。
私は tf.nn.sparse_softmax_cross_entropy_with_logits 損失関数を使用しています。
すべてがうまくいっています。しかし、1 つのクラスが大部分のピクセル (95% 以上) で発生することがわかりました。これをクラス 0 と呼びます。別の 3 つのクラス、1、2、および 3 があるとします。
クラスに重みを付ける最も簡単な方法は何ですか? 基本的に、通常の重み 1 を持つべき他の 3 つのクラスと比較して、クラス 0 の重みを非常に低くしたいと考えています (0.1 など)。
この関数が存在することは知っています: https://www.tensorflow.org/api_docs/python/tf/losses/sparse_softmax_cross_entropy
まったく違うことをしているように見えますが、重みがラベルと同じランクになる方法がわかりません。つまり、私の場合、重みは Tensor([0.1, 1, 1, 1]) のような形 (4,) でランク 1、ラベルは形 (batch_size, width, height) でランク 3 のようにする必要があります。何か不足していますか?
PyTorch で同等のものは次のようになります。
ここで、重みはトーチ テンソル [0.1, 1, 1, 1] です。
ありがとう!
tensorflow - softmax_cross_entropy_with_logits に対する PyTorch の等価性
TensorFlow の同等の PyTorch 損失関数があるのだろうかと思っていましたsoftmax_cross_entropy_with_logits
。