1.配置好tensorboardx和tensorflow
pip install tensorflow
pip install tensorboardx
2.调用tensorboardx
from tensorboardX import SummaryWriter
writer = SummaryWriter(log_dir='logs',flush_secs=25)
参数:
(1)log_dir为需要即将写入的文件夹,tensorboardx会自动帮我们创建,无需手动创建
(2)flush_secs为每隔多长时间对tensorboard中的界面进行更新
例1:loss可视化
from torch.utils.tensorboard import SummaryWriter
import numpy as np
writer = SummaryWriter()
for n_iter in range(100):
writer.add_scalar('Loss/train', np.random.random(), n_iter)#第一个参数表示纵坐标,第二个参数表示图表中的折线,即loss大小,第三个参数表示横坐标的值
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)
然后在命令行中输入tensorboard --logdir=runs,得到地址之后在浏览器中打开,则可看到如下界面:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
r = 5
for i in range(100):
writer.add_scalars('run_14h', {'xsinx':i*np.sin(i/r),
'xcosx':i*np.cos(i/r),
'tanx': np.tan(i/r)}, i)#在同一张折线图下显示多组变量
writer.close()
# This call adds three values to the same scalar plot with the tag
# 'run_14h' in TensorBoard's scalar section.
例2:模型结构可视化
from torchvision.models import resnet50
import torch
model = resnet50(pretrained = False)
inputs = torch.ones(size=(1,3,224,224))
writer = SummaryWriter()
writer.add_graph(model,input_to_model=inputs,verbose=False)#参数解析:model即为你所需要可视化的模型,input_to_model为输入模型中的变量,verbose:是否在控制台打印模型结构
references:
1.https://pytorch.org/docs/stable/tensorboard.html?highlight=tensorboard
2.https://blog.csdn.net/bigbennyguo/article/details/87956434