2

ダイスまたはジャカードの係数でネットワークを最適化しようとしています。私の問題はイメージのセグメンテーションの問題で、私の出力はテンソルの形(1、256、256、11)です。私の出力の交差点とオプティマイザをtensorflow「INT」(特にAdamOptimizer)のデータ型を返します私はTensorflowのダイス/ジャックカード係数の最適化

tf.argmax(output, axis = 3) 

を取る真実の画像を計算するために私は、その後にこれを変換反映されませんfloat with

tf.cast(tf.argmax(output, axis = 3), tf.float32) 

しかし、tf.cast(またはその点についてはtf.argmax)に定義されている勾配があるようには見えません。誰も正常に実行できました

答えて

3

操作tf.argmax()は、グラディエントが実装されていないため、区別できません。微妙な違いがないので、Jaccardを直接最適化することはできません。

同じことが精度で発生します。分類器をトレーニングすると、正確さが分かりにくいため、精度を気にしても微分可能な損失を最適化します。

問題の解決策がないので、jaccardの代わりにその損失を差別化して最適化できる損失機能を使用する必要があります。