【问题标题】:Tensorflow: sigmoid_cross_entropy_with_logits张量流:sigmoid_cross_entropy_with_logits
【发布时间】:2017-07-10 07:19:40
【问题描述】:

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

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

什么样的论据

tf.nn.sigmoid_cross_entropy_with_logits(labels, logits)

函数期望?

我可以安全地假设:

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

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

或者说 logits 是有界的并代表概率?

我对此不是 100% 确定。

【问题讨论】:

  • labels 不是单热向量,而只是二进制分类的标量。除非在一个训练样本中有多个标签,例如标签大象和猫都可以出现在一张图像中,否则labels 将是一个向量。

标签: machine-learning statistics tensorflow


【解决方案1】:

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

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

sigmoid_cross_entropy_with_logits 函数使用逻辑损失为:

x 是你的日志。你基本上已经在sigmoid-part 中激活了。

【讨论】:

  • 谢谢,在 Udacity(互联网学习平台)中,logit 被认为具有可以表示概率的值,因此 [0,1],该命名法是我困惑的根源。
猜你喜欢
  • 2017-11-05
  • 2017-12-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多