TensorBoard add_graph()的用法(附带实例)
add_graph() 方法可以可视化神经网络模型,语法格式如下:
TensorboardX 给出了一个官方样例,大家可以尝试,代码如下:

图 1 可视化网络图
add_graph(model, input_to_model=None, verbose=False)参数说明如下:
- model (torch.nn.Module):待可视化的网络模型;
- input_to_model (torch.Tensor or list of torch.Tensor, optional):待输入神经网络的变量或一组变量;
- verbose:是否打印计算图结构信息。
TensorboardX 给出了一个官方样例,大家可以尝试,代码如下:
# 导入相关库
import torch
import numpy as np
from torchvision import models, transforms
from PIL import Image
from tensorboardX import SummaryWriter
vgg16 = models.vgg16() # 这里下载预训练好的模型
print(vgg16) # 打印这个模型
transform_2 = transforms.Compose([
transforms.Resize(224),
transforms.CenterCrop(224),
transforms.ToTensor(),
# convert RGB to BGR
# from <https://github.com/mrzhu-cool/pix2pix-pytorch/blob/master/util.py>
transforms.Lambda(lambda x: torch.index_select(x, 0, torch.LongTensor([2, 1, 0]))),
transforms.Lambda(lambda x: x*255),
transforms.Normalize(mean = [103.939, 116.779, 123.68],
std = [ 1, 1, 1 ]),
])
cat_img = Image.open('./1.jpg')
# 因为PyTorch是分批次进行训练的,所以这里建立一个批次为1的数据集
vgg16_input=transform_2(cat_img)[np.newaxis]
print(vgg16_input.shape)
# 开始前向传播,打印输出值
raw_score = vgg16(vgg16_input)
raw_score_numpy = raw_score.data.numpy()
print(raw_score_numpy.shape, np.argmax(raw_score_numpy.ravel()))
# 将结构图在TensorBoard中展示
with SummaryWriter(log_dir='./runs/graph', comment='vgg16') as writer:
writer.add_graph(vgg16, (vgg16_input,))
输出如下图所示:
图 1 可视化网络图
ICP备案:
公安联网备案: