我希望执行一个n类的多标签图像分类任务。对于每个图像,我都有稀疏的标签向量,每个标签向量的每个维度目前都是这样编码的:
1.0 -> 标签为真 / 图像属于这个类
-1.0 -> 标签为假 / 图像不包含在这个类中
0.0 -> 缺失值/标签
例如:V = {1.0,-1.0,1.0,0.0}。对于此示例V,模型应该学习到相应的图像应该被分类为第一和第三类。
我的问题是如何处理缺失的值/标签。我已经在问题中搜索到了这个问题:tensorflow/skflow#113 found here 所以可以使用tf.nn.sigmoid_cross_entropy_with_logits(logits, targets, name=None)进行多标签图像分类,
但是TensorFlow还有一个用于排他性分类的稀疏softmax的错误函数:
tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels, name=None)
1.0 -> 标签为真 / 图像属于这个类
-1.0 -> 标签为假 / 图像不包含在这个类中
0.0 -> 缺失值/标签
例如:V = {1.0,-1.0,1.0,0.0}。对于此示例V,模型应该学习到相应的图像应该被分类为第一和第三类。
我的问题是如何处理缺失的值/标签。我已经在问题中搜索到了这个问题:tensorflow/skflow#113 found here 所以可以使用tf.nn.sigmoid_cross_entropy_with_logits(logits, targets, name=None)进行多标签图像分类,
但是TensorFlow还有一个用于排他性分类的稀疏softmax的错误函数:
tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels, name=None)
那么有类似于稀疏sigmoid交叉熵的东西吗?(找不到相关内容)或者有什么建议可以处理我的多标签分类问题,其中标签是稀疏的。
tf.sigmoid_cross_entropy_with_logits()
函数进行了处理。但我不确定为什么你需要-1.0?以及你所说的缺失值是什么意思。这个-1可能会对求解sigmoid交叉熵的梯度产生很多影响。 - Kashyap