代码之家  ›  专栏  ›  技术社区  ›  m33n

每批更新损失值,得到平均损失

  •  0
  • m33n  · 技术社区  · 6 年前

    acc, update_op = tf.metrics.accuracy(tf.argmax(probs, 1), labels, name="accuracy")
    

    这个 更新\u op 值在每次调用中都会更新。

    所以我想对损失也这么做。我尝试了以下代码:

    loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=model.logits, labels=labels))
    update_loss.assign(update_loss + loss)
    

    但我总是跑:

    init_vars = [tf.local_variables_initializer(), 
    
    tf.global_variables_initializer()]
    with tf.Session() as sess:
        loss_val = sess.run(update_loss)
    

    我得到一个值0。你知道吗?

    编辑:

    我必须指出张量的值 损失

    1 回复  |  直到 4 年前
        1
  •  0
  •   m33n    6 年前

    好吧,我发现了一个可行的解决方案,但它并不能真正解决我的疑问。。。基于 this post (5.2)Tensorflow-批次精度 )

    它包括创建一个使用最后获得的损失值的函数,并通过feed\ dict将其传递给一个函数,该函数用累积值更新占位符:

    session.run(tf_metric_update, feed_dict=feed_dict)