TensorFlow TensorBoard¶
1.实时查看参数变化情况¶
1.1 TensorBoard 使用介绍¶
1.首先,在代码目录下建立一个文件夹,存放 TensorBoard 的记录文件
$ mkdir tensorboard2.在代码中实例化一个记录器
summary_writer = tf.summary.create_file_writer("./tensorboard")3.当需要记录训练过程中的参数时,通过
with
语句指定希望使用的记录器,并对需要记录的参数(一般是标量)运行:with summary_writer.as_default(): tf.summary.scalar(name, tensor, step = batch_index)4.当要对训练过程可视化时,在代码目录打开终端
$ tensorboard --logdir=./tensorboard
5.使用浏览器访问命令行程序所输出的网址, 即可访问 TensorBoard 的可视化界面
http://计算机名称:6006
Note
- 每运行一次
tf.summary.scalar()
,记录器就会向记录文件中写入一条记录 - 除了最简单的标量以外,TensorBoard 还可以对其他类型的数据,如:图像、音频等进行可视化
- 默认情况下,TensorBoard 每 30 秒更新一次数据,可以点击右上角的刷新按钮手动刷新
- TensorBoard 的使用有以下注意事项:
- 如果需要重新训练,那么删除掉记录文件夹内的信息并重启 TensorBoard,
或者建立一个新的记录文件夹并开启 TensorBoard,将
--logdir
参数设置为新建里的文件夹 - 记录文件夹目录许保持全英文
- 如果需要重新训练,那么删除掉记录文件夹内的信息并重启 TensorBoard,
或者建立一个新的记录文件夹并开启 TensorBoard,将
1.2 TensorBoard 代码框架¶
# (1)实例化一个记录器 summary_writer = tf.summary.create_file_writer("./tensorboard") # (2)开始训练模型 for batch_index in range(num_batches): # ...(训练代码,将当前 batch 的损失值放入变量 loss 中) # (3)指定记录器 with summary_writer.as_default(): tf.summary.scalar("loss", loss, step = batch_index) tf.summary.scalar("MyScalar", my_scalar, step = batch_index)
2.查看 Graph 和 Profile 信息¶
在训练时使用
tf.summary.trace_on
开启 Trace,此时 TensorFlow 会将训练时的大量信息, 如:计算图的结构、每个操作所耗费的时间等,记录下来。在训练完成后,使用
tf.summary.trace_export
将记录结果输出到文件。1.使用 TensorBoard 代码框架对模型信息进行跟踪记录
# (1)实例化一个记录器 summary_writer = tf.summary.create_file_writer("./tensorboard") # (2)开启 Trace, 可以记录图结构和 profile 信息 tf.summary.trace_on(graph = True, profiler = True) # (3)开始训练模型 for batch_index in range(num_batches): # (4)...(训练代码,将当前 batch 的损失值放入变量 loss 中) # (5)指定记录器, 将当前指标值写入记录器 with summary_writer.as_default(): tf.summary.scalar("loss", loss, step = batch_index) tf.summary.scalar("MyScalar", my_scalar, step = batch_index) # (6)保存 Trace 信息到文件 with summary_writer.as_default(): tf.summary.trace_export(name = "model_trace", step = 0, profiler_outdir = log_dir)2.在 TensorBoard 的菜单中选择
PROFILE
,以时间轴方式查看各操作的耗时情况, 如果使用了@tf.function
建立计算图,也可以点击GRAPHS
查看图结构