簡體   English   中英

更新每批的損失值以獲得平均時期損失

[英]Update loss value each batch to get an averaged epoch loss

我想創建一個類似於使用tf.metrics及其update_op值可以獲得的操作。 在tf中執行此命令時:

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

在每個調用中都會更新update_op值。

所以我想對損失做同樣的事情。 我嘗試了以下代碼:update_loss = tf.Variable(0。,name =“ loss”)

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。有什么想法嗎?

編輯:

我必須指出在執行過程中張量損失的值不為零

好的,我發現了一個可行的解決方案,可以解決這個問題,但並不能真正解決我的疑問……基於此帖子 (5.2 Tensorflow-批處理精度)

它包括創建一個使用最后獲得的損失值的函數,並通過feed_dict將其傳遞給函數,該函數使用累計值更新占位符:

session.run(tf_metric_update, feed_dict=feed_dict)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM