【问题标题】:Can I minimize tf.nn.sigmoid_cross_entropy_with_logits without reduce_mean?我可以在没有 reduce_mean 的情况下最小化 tf.nn.sigmoid_cross_entropy_with_logits 吗?
【发布时间】:2019-03-22 02:57:19
【问题描述】:

我正在使用 tensorflow 训练我的多标签模型。损失使用tf.nn.sigmoid_cross_entropy_with_logits 计算。我可以像这样在没有reduce_sumreduce_mean 的情况下尽量减少损失吗:

...
#loss = tf.reduce_mean(tf.losses.sigmoid_cross_entropy(multi_class_labels=labels, logits=logits)) ## not do this
loss = tf.losses.sigmoid_cross_entropy(multi_class_labels=labels, logits=logits)
optimizer = tf.train.AdamOptimizer(learning_rate=0.1) # do this
train_op = optimizer.minimize(loss, global_step=tf.train.get_global_step())
...

【问题讨论】:

  • Loss 被定义为特定函数的总和或均值,因此您不能删除总和/均值并期望结果具有任何意义。

标签: tensorflow deep-learning multilabel-classification


【解决方案1】:

您可以将 minimize() 与非标量张量一起使用。但是 minimize() 在内部计算非标量 Tensor 的 reduce_sum,因此我建议您使用 reduce_sum 以提高可读性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2019-01-31
    • 2016-08-11
    • 2021-08-10
    • 2021-07-28
    相关资源
    最近更新 更多