关于 tensorboard 的一点心得
- 1.一定要学会使用 tf.variable_scope() 和 tf.name_scope(),否则稍微复杂一点的网络都会乱七八糟。你可以通过上图中的 graph 来看看自己构建的网络结构。
- 2.使用 tensorboard 来看 training 和 validation 的 loss 和 accuracy 变化对于调参非常非常有帮助。经验足的炼丹选手通过 tensorboard 可以很容易地判断出 batch_size 和 learning rate 设置合不合理。
想要了解更多,可以参考详解 TensorBoard-如何调参
例1 - 在 tensorboard 中记录 tensor 的变化。
import tensorflow as tf
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
import os
import shutil
"""TensorBoard 简单例子。
tf.summary.scalar('var_name', var) # 记录标量的变化
tf.summary.histogram('vec_name', vec) # 记录向量或者矩阵,tensor的数值分布变化。
merged = tf.summary.merge_all() # 把所有的记录并把他们写到 log_dir 中
train_writer = tf.summary.FileWriter(log_dir + '/add_example', sess.graph) # 保存位置
运行完后,在命令行中输入 tensorboard --logdir=log_dir_path(你保存到log路径)
"""
log_dir = 'summary/graph/'
if os.path.exists(log_dir): # 删掉以前