1. Tensorboard概述
Tensorboard 是Tensorflow的可视化工具,tensorboard可以通过tensorflow程序输出的日志来可视化Tensorflow程序的运行状态。Tensorboard和tensorflow运行在不同的进程中,tensorboard会自动读取tensorflow程序的最新日志。
# -*- coding: utf-8 -*-
import tensorflow as tf
var1 = tf.constant([1.0, 2.0, 3.0], dtype=tf.float32, name='input1')
var2 = tf.Variable(tf.random_uniform([3]), dtype=tf.float32, name='input2')
output = tf.add_n([var1, var2], name='add')
writer = tf.summary.FileWriter('./path/to/log', tf.get_default_graph())
writer.close()
tensorboard --logdir ./path/to/log
可以在本地的6006
端口查看保存的图的情况。
2. 变量命名空间的管理
在tf中可以用tf.variable_scope()
和tf.name_scope
来管理变量的命名空间,两者的区别是对tf.get_variable()
函数的限制。前者可以限制tf.get_variable()
函数定义的变量,也就是会在变量的前面加上声明的命名空间,而后者对tf.get_variable()
声明的变量没有限制,也就是不会在变量的名字前加上命名空间,但是对tf.Variable()
声明的变量是有限制的。
# -*- coding: utf-8 -*-
import tensorflow as tf
with tf.name_scope('input1_scope'):
var1 = tf.constant([1.0, 2.0, 3.0], dtype=tf.float32, name='input1')
with tf.name_scope('input2_scope'):
var2 = tf.Variable(tf.random_uniform([3]), dtype=tf.float32, name='input2')
output = tf.add_n([var1, var2], name='add')
writer = tf.summary.FileWriter('./path/to/log_name_scope', tf.get_default_graph())
writer.close()
加入name scope的区别:
加入name_scope后,input1没有变化,还是一个变量,但是input2变成了input2_scope了,把一个scope内的变量都放到一块儿了,input2_scope包括input2变量和random_uniform变量。
3. Tensorboard显示变量的运行时间及内存使用情况
4. Tensorboard监控metrics指标
需要在变量定义时加上日志输出