美文网首页
tensorflow中的tf.summary()和tf.Summ

tensorflow中的tf.summary()和tf.Summ

作者: FireJohnny | 来源:发表于2018-07-04 14:07 被阅读0次

    前段时间在处理tensorflow的tensorboard时发现当验证集过大,而导致无法一次性处理时将数据写入summary()是一个错误的结果,而在查阅了很多资料后发现很少有这方面的文章。
    而tensorflow官方由于最近好像被枪毙了,不翻墙进不去,于是在github上发现一个解决办法,再次记录,帮助新学者。

    1、tf.summary

    在有足够的空间的情况下(内存或者显存,根据自己情况判断),一般会直接将需要的tensor直接写入到

    summary_1 = tf.summary.scalar(name="name_1",tensor=tensor_value_1)
    summary_2 = tf.summary.scalar(name="name_2",tensor=tensor_value_2)
    summary = tf.summary.merge_all() #summary = tf.summary.merge([summary_1,summary_2])
    
    with tf.Session() as sess:
        summary_write = tf.summary.FileWriter(out_dir,sess.graph) #out_dir 为输出路径
        summary_out = sess.run(summary)
        summary_write.add_summary(summary_out)
    

    但是当数据过大,无法一次性跑完验证集的时候就需要自己定义google_protocol_buffer,此时的方案为下:

    2、tf.Summary()

    with tf.Session() as sess:
        summary_write = tf.summary.FileWriter(out_dir,sess.graph) #out_dir 为输出路径
        t_loss = []
        for e in batch_data(dev_data):
            loss = sess.run(model.loss,feed_dict={model.input:e})
            t_loss.append(loss)
        loss = np.mean(loss)
        dev_summary = tf.Summary()
        dev_summary.value.add(tag="name_1",simple_value=loss)
        summary_write.add_summary(dev_summary)
        ###    
        or
        dev_summary = tf.Summary(value = [tf.Summary.value(tag="name_1",simple_value=loss)])
        summary_write.add_summary(dev_summary)
        ###
    

    其他涉及到的image或者是直方图等信息可以参考一下方案:
    [链接地址]https://gist.github.com/FireJohnny/1f82b5f7a3eabbdc7aacdb967fe1b557

    相关文章

      网友评论

          本文标题:tensorflow中的tf.summary()和tf.Summ

          本文链接:https://www.haomeiwen.com/subject/gzseuftx.html