0、安装
- Tensorflow关于Tesorboard的官方文档
- PyTorch关于Tesorboard的官方文档
- 首先,
pip install tenosrboard
- 程序运行时如果报错:ModuleNotFoundError: No module named ‘past’,则安装
pip install future
可以解决问题
1、浏览器中显示
- 在终端中输入:tensorboard --logdir=runs(这里的runs表示tensorboard文件所在的文件夹,当前版本中默认文件夹就是runs),接着会提示:
- 如果在服务器上运行,则可以通过端口转发的方式在本地来进行查看,参考这篇
- 如果进行端口转发,注意默认使用的端口是不是默认的6006端口!
2、Tesorboard使用
- 记录模型的权重、偏置、梯度信息
from torch.utils.tensorboard import SummaryWriter # writer = SummaryWriter('runs/mnist_experiment_1')# 可以自定义保存的文件夹 writer = SummaryWriter() # 默认保存文件夹为runs for e in range(epochs): ..... 模型训练代码 ..... # 记录权重、偏置、梯度信息 for name, layer in model.named_parameters(): writer.add_histogram(name + '_grad', layer.grad.cpu().data.numpy(), e+1) writer.add_histogram(name + '_data', layer.cpu().data.numpy(), e+1)
- 记录损失信息
- loss、accuracy 等都是数值,也即Scalars
add_scalar(tag, scalar_value, global_step=None, walltime=None)
- tag:记录的这个数值的标签(比如 training_loss 等);常用的一个方法是将 tag 值设置为 section/plot,Tensorboard 会按照 section 来给结果分组,如:‘train/loss’
- global_step:通常是曲线图里的 x 轴,如果不设置则默认一直为 0,可以设置为epochs
- walltime:记录时间戳,默认是系统当前时间 time.time()
- 示例
writer.add_scalar('Train/Loss', loss.item(), epoch) #writer.flush() writer.add_scalar('Test/Loss', test_loss, epoch) writer.add_scalar('Test/Accuracy', accuracy, epoch) #writer.flush()
- 记录模型结构
writer.add_graph(net, images)
- net:要可视化的模型结构
- images:可以随机产生一个满足网络输入的tensor
- 当前的PyTorch版本似乎不太稳定,有时无法画出网络的结构图
- 示例
net = MyNet() net_input = torch.rand(128,3,28,28) writer.add_graph(net, net_input) writer.close()