Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 语义分割中如何删除特定的标记像素_Tensorflow_Image Processing_Pytorch_Image Segmentation_Semantic Segmentation - Fatal编程技术网

Tensorflow 语义分割中如何删除特定的标记像素

Tensorflow 语义分割中如何删除特定的标记像素,tensorflow,image-processing,pytorch,image-segmentation,semantic-segmentation,Tensorflow,Image Processing,Pytorch,Image Segmentation,Semantic Segmentation,我不熟悉语义分割。我使用FCN来训练我的数据集。在数据集中有一些未知类的像素。我想把这个班排除在我的损失之外。因此,我根据整个数据集的类分布定义了一个权重,并将未知类的权重设置为零,如下所示。但我还是得到了这门课的预测。你知道如何正确地排除一个特定的类吗 loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits (logits=logits, labels=tf.squee

我不熟悉语义分割。我使用FCN来训练我的数据集。在数据集中有一些未知类的像素。我想把这个班排除在我的损失之外。因此,我根据整个数据集的类分布定义了一个权重,并将未知类的权重设置为零,如下所示。但我还是得到了这门课的预测。你知道如何正确地排除一个特定的类吗

loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits
                      (logits=logits, labels=tf.squeeze(annotation,
                                                        squeeze_dims=[3]),name="entropy"))
weighted_losses = (loss * weights)
train_op = optimizer.minimize(weighted_losses,
                                  var_list=tf.trainable_variables(),
                                  global_step=tf.train.get_global_step())

我不知道pytorch,但我听说在loss函数中有一个用于此目的的东西“ignore_index”,您可以忽略一个特定的类。如果这是解决我问题的正确方法,你知道张量流中是否有等价物吗

对于语义切分,有两个“特殊”标签:一个是“背景”(通常为0),另一个是“忽略”(通常为255或-1)

  • “背景”和所有其他语义标签一样,意思是“我知道这个像素不属于我正在使用的任何语义类别”。只要适用,模型就必须正确输出“背景”
  • “忽略”标签不是模型可以预测的标签-它“超出”其范围。此标签仅存在于培训注释中,意思是“我们不确定该如何标记此像素,因此忽略它”
当目标标签中存在“忽略”像素时,模型不能(也不应该)输出“忽略”标签。然而,您的模型应该输出一些东西。该像素标记为“忽略”这一事实意味着丢失函数将忽略该像素的模型输出(假设您告诉丢失函数忽略“忽略”像素)。此外,如果您的测试/验证集具有“忽略”标签,则意味着无论您的模型为这些像素输出什么,它都将被评分机制忽略,并且不会被视为正确或不正确的预测

总而言之:即使地面真相有“忽略”标签,模型也不能也不应该输出“忽略”。它只是简单地输出它感觉像的任何有效标签,它是完全可以的


对于tensorflow,您可以结帐。

谢谢您的回答。我现在想知道如何“忽略”借条中的标签。你能给我一些提示吗?@Arb有趣的问题。为什么不把它贴出来呢?谢谢你的回复。我已经发了