Tensorboard从入门到自己看吧



  • 概述

    tensorboard作为可视化的一个非常棒的工具,但是入门阶段有一些小东西,记录如下。

    代码描述

    代码沿用上次Blog的自增,在tensorboard记录y的值,对应应用中,我们常用来记录loss,acc等值。

    import tensorflow as tf
    
    x = tf.Variable(0.0)
    #返回一个op,表示给变量x加1的操作
    x_plus_1 = tf.assign_add(x, 1)
    print x_plus_1
    
    #control_dependencies的意义是,在执行with包含的内容(在这里就是 y = x)前
    #先执行control_dependencies中的内容(在这里就是 x_plus_1)
    with tf.control_dependencies([x_plus_1]):
        y = x
        sum_y = tf.summary.scalar('y', y)
        
    init = tf.global_variables_initializer()
    
    
    with tf.Session() as session:
        init.run()
        train_writer = tf.summary.FileWriter('Summaries/zfy_test', session.graph)
    
        for i in xrange(5):
            print(session.run(y))#相当于sess.run(y),由于control_dependencies的所以执行print前都会先
            summary = session.run(sum_y)
            train_writer.add_summary(summary, i)
    train_writer.close()
    

    tensorboard结果图

    虚线为原始数据,实线为平滑过的结果。
    0_1521892887820_2a6c18df-809e-4b6d-ba31-0b3880773c1f-image.png

    tensorboard侧栏介绍

    0_1521893021414_2899f1f5-6884-48ba-8725-7a2c76de24d8-image.png
    smoothing主要是结果平滑作用,锯齿过多时平滑更容易看出趋势。
    STEP:横坐标为迭代次数。
    RELATIVE:横坐标选择为相对时间(最大为1)。
    WALL:横坐标选择为绝对时间。

    图中多线的bug

    参考知乎 :https://www.zhihu.com/question/56413487/answer/260069446
    多次sess.run()会导致形成多个图线,并且会画到一个图上。并且删除文件无效,需要重启tensorboard。暂时没有优雅的解决方案。


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

与 Dian 的连接断开,我们正在尝试重连,请耐心等待