Tensorflow:sigmoid_cross_entropy_with_logits

时间:2017-02-20 21:10:38

标签: machine-learning statistics tensorflow

我有一个图像多标签分类问题,我想用tensorflow解决。

我正在尝试为CNN网络构建适当的损失函数和“适当的”最终层。

有什么样的论据
tf.nn.sigmoid_cross_entropy_with_logits(labels, logits)

函数需要吗?

我可以安全地假设:

  • 标签是二进制值为{0,1}
  • 的向量
  • logits是与具有相同dimmension的向量,具有来自整个值的标签[-∞,∞[

因此我应该在最后一层跳过ReLU(以确保最终输出可以是负数)。

或许logits有界并代表概率?

我对此并不是100%肯定。

1 个答案:

答案 0 :(得分:6)

你是对的。你的标签虽然可以是0到1之间的任何实数,即使它是或者通常是。但理论上(偶尔也会练习)这里的标签可以是[0,1]范围内的任何实数。

关于logits的问题:没有激活。你是对的。

sigmoid_cross_entropy_with_logits使用后勤损失,如: z * -log(sigmoid(x))+(1 - z)* -log(1 - sigmoid(x)) 用x作为你的logit。你基本上已经在sigmoid-part中激活了。