基于pytorch使用Tensorboard使用
内容来源:
详解PyTorch项目使用TensorboardX进行训练可视化
TORCH.UTILS.TENSORBOARD
在本地显示远程服务器的TensorboardX结果
1.安装
使用 pip 安装
pip install tensorboardX
从源码安装
git clone https://github.com/lanpa/tensorboardX && cd tensorboardX && python setup.py install
2.Tensboard使用
2.1.初始化 SummaryWriter
- 使用指定路径保存日志:
summarywriter1 = SummaryWriter(%target_dir)
- 无参数,默认将使用路径
runs/日期时间
来保存日志
summarywriter2 = SummaryWriter()
- 提供commen参数,使用路径
runs/日期时间-comment
保存日志文件
summarywriter3 = SummaryWriter(comment='experiment')
一般来讲,我们对于每次实验新建一个路径不同的 SummaryWriter,也叫一个 run,如 runs/exp1
、runs/exp2
。
接下来,我们就可以调用 SummaryWriter 实例的各种add_something
方法向日志中写入不同类型的数据了。
2.2.记录数字 (scalar)数据
add_scalar(tag, scalar_value, global_step=None, walltime=None)
参数
- tag (string): 数据名称,不同名称的数据使用不同曲线展示
- scalar_value (float): 数字常量值
- global_step (int, optional): 训练的 step
- walltime (float, optional): 记录发生的时间,默认为 time.time()
PyTorch scalar tensor,需要调用.item()
方法获取其数值。我们一般会使用add_scalar
方法来记录训练过程的 loss、accuracy、learning rate 等数值的变化,直观地监控训练过程。
from torch.utils.tensorboard import SummaryWriter
import numpy as np
writer = SummaryWriter('runs/scalar_example')
for n_iter in range(100):
writer.add_scalar('Loss/train', np.random.random(), n_iter)
writer.add_scalar('Loss/test', np.random.random(), n_iter)
writer.add_scalar('Accuracy/train', np.random.random(), n_iter)
writer.add_scalar('Accuracy/test', np.random.random(), n_iter)
在一个路径为 runs/scalar_example 的 run 中分别写入了二次函数数据 quadratic 和指数函数数据 exponential,
在另一个路径为 runs/another_scalar_example 的 run 中写入名称相同但参数不同的二次函数和指数函数数据
writer = SummaryWriter('runs/scalar_example')
for i