![](/img/trans.png)
[英]How to get the loss for each epoch in custom batch training in Keras?
[英]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.