【深度学习】TensorBoard可视化

171 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

注意:本文使用tensorflow1.x版本进行演示

使用本地Jupyter Notebook搭载TensorFlow相关库进行操作

1. Tensorboard可视化

在Tensorflow中,为了更加清楚的理解网络和计算,方便后续的调试与优化,Tensorflow提供了可视化工具TensorBoard,可以查看自己写好的程序可视化效果。

2. 具体可视化操作步骤

2.1 数据序列化:events文件

TensorBoard通过读取Tensorflow的事件文件来运行,需要将数据生成一个序列化的Summary protobuf对象。

具体语法如下所示:

tf.summary.FileWriter(path, graph=sess.graph)

具体代码演示如下所示:

  • 在函数中定义可视化
  • 将图写入本地生成events文件中
  • 保存地址为当前目录下summary目录
  • 可视化的图指定为当前自定义图new_sess
  • 函数中首先定义两个常量,然后进行加和操作,之后开启会话,最后写入本地生成events文件。
def graph_zidingyi():
    """
    自定义图演示
    """

        
    # 自定义图
    new_g = tf.Graph()
    # 在自己的图中定义数据和操作
    with new_g.as_default():
        a_new = tf.constant(20)
        b_new = tf.constant(30)
        c_new = a_new + b_new
        print("c_new:\n", c_new)
        print("a_new的图属性:\n", a_new.graph)
        print("c_new的图属性:\n", c_new.graph)
    # 开启new_g的会话
    with tf.Session(graph=new_g) as new_sess:
        c_new_val = new_sess.run((c_new))
        print("c_new_val:\n", c_new_val)
        print("new_sess的图属性:\n", new_sess.graph)
        # 1. 将图写入本地生成events文件
        tf.summary.FileWriter("./summary", graph=new_sess.graph)
    return None

运行此函数:

graph_zidingyi()

具体运行结果如下图所示:

image.png

并且在当前文件夹生成了summary目录:里面保存了可视化文件,我要我们用tensorboard打开。

image.png

然后,在得到events.out.tfevents以后,还需要在命令行窗口(或者是在conda promp中进入到你安装Tensorflow的虚拟环境中)使用Tensorboard打开该文件

若出现cannot assign to operator报错

  • 说明没有在命令行中进行指令。
  • 注意以下指令不是在python的编辑环境里进行输入

在命令行窗口中,先进入到刚才保存文件的上级目录中。

cd 文件保存上级目录path

然后使用tensroboard打开,注意地址不要加引号否则会出现如下报错:

image.png

tensorboard --logdir=./summary/

运行成功得到正确的自定义图,如下所示:

image.png