目录
1. 简介
2. 基本步骤
3. 示例1 - 可视化单条曲线
4. 示例2 - 可视化多条曲线
5. 示例3 - 可视化网络结构
1. 简介
Tensorboard是Tensorflow的可视化工具,常用来可视化网络的损失函数,网络结构,图像等。后来将Tensorboard集成到了PyTorch中,常使用torch.utils.tensorboard来进行导入。官网地址:TensorBoard — PyTorch
2. 基本步骤
(1) 首先执行如下代码,具体含义写在注释里
from torch.utils.tensorboard import SummaryWriter
if __name__ == '__main__':
# 新建实例, log_dir为生成文件的存储地址, 不写参数默认是./run/文件夹下
writer = SummaryWriter(log_dir='events存储地址')
# 调用对象的方法,给文件写入数据
writer.add_scalar(tag="show1", scalar_value=loss, global_step=epoch)
writer.add_scalars(main_tag="show2", tag_scalar_dict={'fun1': None, 'fun2': None}, global_step=epoch)
writer.add_graph(model=model, input_to_model=input)
# 关闭writer
writer.close()
(2) 执行完上述代码,会在设置的log_dir路径下生成一个以events.out开头的文件,如下所示
(3) 执行如下命令,运行该文件
tensorboard --logdir=r'events存储地址'
(4) 运行结束后复制生成的地址并在浏览器中打开
3. 示例1 - 可视化单条曲线
from torch.utils.tensorboard import SummaryWriter
if __name__ == '__main__':
writer = SummaryWriter(log_dir='/home/Test/log_dir')
for i in range(100):
writer.add_scalar(tag="y=2x", scalar_value=2 * i, global_step=i)
writer.close()
其中参数的具体含义如下:
4. 示例2 - 可视化多条曲线
from torch.utils.tensorboard import SummaryWriter
if __name__ == '__main__':
writer = SummaryWriter(log_dir='/home/Test/log_dir')
for x in range(100):
writer.add_scalars('multi_funcs', {'2x': 2 * x, '3x': 3 * x, '4x': 4 * x}, x)
writer.close()
其中参数的具体含义如下:
5. 示例3 - 可视化网络结构
新建一个MLP网络,通过add_graph来保存网络结构
import torch
import torch.nn as nn
from torch.utils.tensorboard import SummaryWriter
class MLP(nn.Module):
def __init__(self):
super(MLP, self).__init__()
self.model = nn.Sequential(
nn.Linear(784, 512),
nn.ReLU(),
nn.Linear(512, 128),
nn.ReLU(),
nn.Linear(128, 10)
)
def forward(self, x):
out = self.model(x)
return out
if __name__ == '__main__':
writer = SummaryWriter(log_dir='/home/TenbodTest/log_dir')
model = MLP()
input = torch.rand(32, 1, 28, 28).view(-1, 28 * 28)
writer.add_graph(model, input)
writer.close()
其中参数的具体含义如下:
可视化结果如下: