Tensorboard 是 TensorFlow 的一个附加工具 可以记录训练过程的数字、图像等内容 以方便研究人员观察神经网络训练过程。但是对于 PyTorch 等其他神经网络训练框架并没有功能像 Tensorboard 一样全面的类似工具 一些已有的工具功能有限或使用起来比较困难 (tensorboard_logger, visdom等) 。TensorboardX 这个工具使得 TensorFlow 外的其他神经网络框架也可以使用到 Tensorboard 的便捷功能。
.安装了tensorflow会自动安装tensorboard
tensorboardx依赖于tensorboard和ternsorflow
tensorflow依赖于tensorboard
pip install tensorboardX
创建SummaryWriter实例以下展示了三种初始化 SummaryWriter 的方法
1.提供一个路径 将使用该路径来保存日志代码
from tensorboardX import SummaryWriter writer SummaryWriter( runs/another_scalar_example/11 )
目录结构
代码
from tensorboardX import SummaryWriter writer SummaryWriter()
目录结构
代码
from tensorboardX import SummaryWriter writer SummaryWriter(comment abc )
目录结构
接下来 我们就可以调用 SummaryWriter 实例的各种 add_something 方法向日志中写入不同类型的数据了。
add_scalar(tag, scalar_value, global_step None, walltime None)tag (string): 数据名称 不同名称的数据使用不同曲线展示scalar_value (float): 数字常量值global_step (int, optional): 训练的 stepwalltime (float, optional): 记录发生的时间 默认为 time.time() 举例
1.例子1
代码
from tensorboardX import SummaryWriter writer SummaryWriter() for i in range(10): writer.add_scalar( quadratic , i**2, global_step i) writer.add_scalar( exponential , 2**i, global_step i)
在浏览器可视化界面中效果如下
不同名称的数据使用不同曲线展示
2.例子2
代码
from tensorboardX import SummaryWriter writer SummaryWriter() for i in range(10): writer.add_scalar( quadratic , i**2, global_step i) writer.add_scalar( quadratic , i**4, global_step i)
在浏览器可视化界面中效果如下
本质过程就是描点 然后用直线按照描点顺序把各点链接起来
再例如
代码
from tensorboardX import SummaryWriter writer SummaryWriter() for i in range(10): writer.add_scalar( quadratic , i, global_step i) writer.add_scalar( quadratic , i**2, global_step i) for i in range(10): writer.add_scalar( quadratic , -i**3, global_step i)
在浏览器可视化界面中效果如下
3.例子3
第一次执行程序代码
from tensorboardX import SummaryWriter writer SummaryWriter( runs/exp ) for i in range(10): writer.add_scalar( quadratic , i**2, global_step i)
第二次执行程序代码 第二次执行不删除第一次生成的目录文件夹
from tensorboardX import SummaryWriter writer SummaryWriter( runs/exp ) for i in range(10): writer.add_scalar( quadratic , -i**2, global_step i)
最终的目录结构
在浏览器可视化界面中效果如下
要启动tensorboard 必须指定它的logdir 默认为runs : tensorboard会在你指定的这个log-dir里面做路径搜索 寻找所有的events文件以及子文件夹中的events文件。在同一个目录下的两个events文件 数据名称相同 最终可视化结果是两个阶段的描点按照顺序的组合。也就是第一阶段最后一个点和第二阶段第一个点也有直线连接。
4.例子4
目录结构
在浏览器可视化界面中效果如下
tensorboard会在你指定的这个log-dir里面做路径搜索 寻找所有的events文件以及子文件夹中的events文件。路径相同的events文件可视化的图形线条颜色一样,如果文件路径不同但是数据名称相同 则会被用不同线条颜色画到同一个图里面。
add_graph使用 add_graph 方法来可视化一个神经网络。
参数介绍add_graph(model, input_to_model None, verbose False, **kwargs)model (torch.nn.Module): 待可视化的网络模型input_to_model (torch.Tensor or list of torch.Tensor, optional): 待输入神经网络的变量或一组变量。输入的是一个元组 且各变量的维度一定要满足网络的实际输入需求 因为网络的输入变量个数大于等于1.



