【发布时间】:2017-06-03 13:08:02
【问题描述】:
我有一个包含 5 个标签的多标签分类问题。如果我的输出层的形状为 [n_samples, n_labels=5] 并且损失函数为 tf.nn.sigmoid_cross_entropy_with_logits 是否正确?或者我应该有 [n_samples, n_labels=5, 2] 形状的输出层,其中 2 用于编码是否每个标签都分配给样本?
【问题讨论】:
-
你打算如何使用多标签分类器?多标签分类器与多类分类器有很大不同。 Tensorflow 也有 sigmoid_cross_entropy 函数,它通常用于多标签分类,然后你要么学习某种阈值,要么使用恒定阈值来选择实例的标签。
-
实际上我正在使用 tf.nn.sigmoid_cross_entropy_with_logits 因为这是适合多标签的一种,而 softmax 则适用于多类问题。我编辑了我的帖子。
-
输出层的形状应该仍然是
[n_samples, n_labels] -
那么,我应该使用阈值来决定是否分配标签吗?
-
是的......你应该在分类器完成训练后进行阈值化
标签: tensorflow classification loss