Tensorflow中的多标签多类分类器

时间:2018-05-08 10:01:32

标签: python tensorflow

我想用TensorFlow制作一个多标签的多类分类器。 例如,

  • 标签:A,B,C,D,E,F

数据有多个标签

  • data1标签:[0,1,1,0,0]
  • data2标签:[1,0,0,0,0]
  • data3标签:[0,1,0,0,0]

我想用神经网络对这些标签进行分类。 我可以使用以下代码作为费用吗?

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(data1 prediction, data1 label))

1 个答案:

答案 0 :(得分:0)

不,您不能使用您为损失函数提供的代码,因为tf.nn.softmax_cross_entropy_with_logits需要label参数的有效概率分布。

如果每个示例都属于多个类(即类是独立的而不是互斥的),则建议选择tf.nn.sigmoid_cross_entropy_with_logits

更新:回答您的评论

当我谈到有效的概率分布时,我的意思是每个"标签数组的元素"必须加1,所有元素都必须是非负的。例如, data1 label 不是有效的概率分布,因为其元素之和为2。

你的问题显然是二元分类,因为类不是互斥的,你想为每个类产生独立的概率(即属于该类的概率)。

相关问题