Tensorflow2.0之可视化界面(tensorboard)

Tensorflow2.0之可视化界面

可视化:

在网络训练的过程中,通过Web 端远程监控网络的训练进度,可视化网络的训练结果,对于提高开发效率和实现远程监控是非常重要的。TensorFlow 提供了一个专门的可视化工具,叫做TensorBoard,它通过TensorFlow 将监控数据写入到文件系统,并利用Web后端监控对应的文件目录,从而可以允许用户从远程查看网络的监控数据。TensorBoard 的使用需要模型代码和浏览器相互配合。在使用TensorBoard 之前,需要安装TensorBoard 库,安装命令如下:

# 安装TensorBoard
pip install tensorboard

模型端:

在模型端,需要创建写入监控数据的Summary 类,并在需要的时候写入监控数据。首先通过tf.summary.create_file_writer 创建监控对象类实例,并指定监控数据的写入目录,代码如下:

import tensorboard
current_time = datetime.datetime.now().strftime(('%Y%m%d-%H%M%S'))
log_dir = 'logs/'+current_time
summary_writer = tf.summary.create_file_writer(log_dir)

我们以监控误差数据和可视化图片数据为例,介绍如何写入监控数据。在前向计算完成后,对于误差这种标量数据,我们通过tf.summary.scalar 函数记录监控数据,并指定时间戳step 参数。这里的step 参数类似于每个数据对应的时间刻度信息,也可以理解为数据曲线的坐标,因此不宜重复。每类数据通过字符串名字来区分,同类的数据需要写入相同名字的数据库中。例如:

with summary_writer.as_default(): # 写入环境
	# 当前时间戳step 上的数据为loss,写入到名为train-loss 数据库中
	tf.summary.scalar('train-loss', float(loss), step=step)

一般训练时候有两处需要写这两行代码,一个是计算损失值的地方,一个是计算完准确度的地方和,通过不同的命名比如这里的’train-loss’ 在计算准确度的时候就可以写train-acc 这样在网页端就会给你两个图

浏览器端:

在运行程序时,监控数据被写入到指定文件目录中。如果要实时远程查看、可视化这些数据,还需要借助于浏览器和Web 后端。首先是打开Web 后端,通过在cmd 终端运行tensorboard --logdir path 指定Web 后端监控的文件目录path,即可打开Web 后端监控进程。
当然安装tensorboard可能出现很多问题,这里就不一一列举了,主要的问题可能还是tensorflow安装的时候多安或少安了一些大小。
此时打开浏览器,并输入网址http://localhost:6006 (也可以通过IP 地址远程访问,具体端口号可能会变动,可查看命令提示) 即可监控网络训练进度。TensorBoard 可以同时显示多条监控记录,在监控页面的左侧可以选择监控记录
如下图所示:
Tensorflow2.0之可视化界面(tensorboard)_第1张图片
在左边你还可以选择多次的记录(每运行一次程序就会添加一次记录),让他们画在同一张图。

温馨提示:

先在终端上运行了tensorboard --logdir path(cd 到指定文件夹)之后,再运行程序,然后再启动浏览器。如果终端没有先运行的话浏览器端是接收不到数据的

你可能感兴趣的:(小白的ai学习之路,TF2)