How to average summaries over multiple batches?

后端 未结 9 1419
刺人心
刺人心 2020-12-13 09:18

Assuming I have a bunch of summaries defined like:

loss = ...
tf.scalar_summary(\"loss\", loss)
# ...
summaries = tf.m         


        
9条回答
  •  Happy的楠姐
    2020-12-13 10:06

    I think it's always better to let tensorflow do the calculations.

    Have a look at the streaming metrics. They have an update function to feed the information of your current batch and a function to get the averaged summary. It's going to look somewhat like this:

    accuracy = ... 
    streaming_accuracy, streaming_accuracy_update = tf.contrib.metrics.streaming_mean(accuracy)
    streaming_accuracy_scalar = tf.summary.scalar('streaming_accuracy', streaming_accuracy)
    
    # set up your session etc. 
    
    for i in iterations:
          for b in batches:
                   sess.run([streaming_accuracy_update], feed_dict={...})
    
         streaming_summ = sess.run(streaming_accuracy_scalar)
         writer.add_summary(streaming_summary, i)
    

    Also see the tensorflow documentation: https://www.tensorflow.org/versions/master/api_guides/python/contrib.metrics

    and this question: How to accumulate summary statistics in tensorflow

提交回复
热议问题