一. SummaryWriter定义
1. 官方定义
"""
Writes entries directly to event files in the log_dir to be consumed by TensorBoard.
The `SummaryWriter` class provides a high-level API to create an event file in a given directory and add summaries and events to it. The class updates the file contents asynchronously. This allows a training program to call methods to add data to the file directly from the training loop, without slowing down training.
"""
翻译如下:
SummaryWriter类将条目直接写入log_dir中的事件文件,以供TensorBoard使用,提供了一个高级API,用于在给定目录中创建事件文件,并向其中添加摘要和事件。该类异步更新文件内容。这允许训练程序调用方法,直接从训练循环向文件添加数据,而不会减慢训练速度。
也就是SummaryWriter类可以在指定文件夹生成一个事件文件,提供高级接口,该文件可以被TensorBoard解析。
2. SummaryWriter初始化
def __init__(self, log_dir=None, comment='', purge_step=None, max_queue=10,
flush_secs=120, filename_suffix=''):
- log_dir : 用以保存summary的文件夹,下文实例化中具体介绍怎么使用
- comment: 不指定 log_dir时的文件后缀
- filename_suffix:文件名后缀
二. SummaryWriter实例化
1. 安装
找到所在环境安装tensorboard
pip install tensorboard
2. 导入
from torch.utils.tensorboard import SummaryWriter
3. 实例化
官方示例展示了三种初始化 SummaryWriter 的方法:
# create a summary writer with automatically generated folder name.
writer = SummaryWriter()
# folder location: runs/May04_22-14-54_s-MacBook-Pro.local/
# create a summary writer using the specified folder name.
writer = SummaryWriter("my_experiment")
# folder location: my_experiment
# create a summary writer with comment appended.
writer = SummaryWriter(comment="LR_0.1_BATCH_16")
# folder location: runs/May04_22-14-54_s-MacBook-Pro.localLR_0.1_BATCH_16/
第1个示例:无参数,保存在默认的存储文件夹:runs/日期时间
第2个示例:保存在指定文件夹中,参数为文件夹名;
第3个实例:保存在默认文件夹中,提供一个 comment 参数,功能是在文件夹后加后缀,如runs/日期时间-comment
我命名的文件名如下:
writer = SummaryWriter("Res_experiment")
4. 调用函数
在文件中调用SummaryWriter实例的各种函数向事件文件中写入不同类型的数据。
5. 打开
想要在浏览器中查看可视化的数据,在命令行中开启 tensorboard :
tensorboard --logdir=事件文件所在的文件夹名
接着用浏览器打开http://localhost:6006/,即可连接。