Tensorflow 基于交叉熵的像素级softmax多类分割

Tensorflow 基于交叉熵的像素级softmax多类分割,tensorflow,machine-learning,keras,deep-learning,computer-vision,Tensorflow,Machine Learning,Keras,Deep Learning,Computer Vision,我试图用2实现一个多类语义分割模型 课程(人、车)。这是我对unet体系结构的改进实现。I输出通道数为3(3类-人、车、背景)。如何获得像素级分类? 这里有两个来自我的地面真相面具的例子 我为每个对象类使用1个通道 等级=汽车的通道1 类别=背景的通道2 类的通道3=人 您几乎完成了,现在使用以下命令反向传播网络错误: loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=output_la

我试图用2实现一个多类语义分割模型 课程(人、车)。这是我对unet体系结构的改进实现。I输出通道数为3(3类-人、车、背景)。如何获得像素级分类? 这里有两个来自我的地面真相面具的例子

我为每个对象类使用1个通道

  • 等级=汽车的通道1
  • 类别=背景的通道2
  • 类的通道3=人


您几乎完成了,现在使用以下命令反向传播网络错误:

loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=output_layer, labels=labels))   
tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss) 

您不必将基本事实转换为一个热门格式,sparse_softmax将为您添加点。

我将GT遮罩重塑为(img_h*img_w,nclasses)以匹配模型的输出尺寸。我用分类交叉熵训练,但模型似乎不收敛。传统的“准确度”指标是否是一个好的监测指标?单独的准确度不能很好地衡量模型是否收敛。如果您想检查您的模型是否运行良好,我建议只使用一个批量大小为1的train映像来训练您的网络。然后检查您的模型是否可以识别标签。是否可以不使用tf.reduce_mean函数将错误反向传播到特定激活?i、 e.像素丢失?
loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=output_layer, labels=labels))   
tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss)