我想用TensorFlow制作一个多标签的多类分类器。 例如,
数据有多个标签
我想用神经网络对这些标签进行分类。 我可以使用以下代码作为费用吗?
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(data1 prediction, data1 label))
答案 0 :(得分:0)
不,您不能使用您为损失函数提供的代码,因为tf.nn.softmax_cross_entropy_with_logits需要label参数的有效概率分布。
如果每个示例都属于多个类(即类是独立的而不是互斥的),则建议选择tf.nn.sigmoid_cross_entropy_with_logits。
更新:回答您的评论
当我谈到有效的概率分布时,我的意思是每个"标签数组的元素"必须加1,所有元素都必须是非负的。例如, data1 label 不是有效的概率分布,因为其元素之和为2。
你的问题显然是二元分类,因为类不是互斥的,你想为每个类产生独立的概率(即属于该类的概率)。