writer.add_scalar ( ) 用法介绍:
1. 引入相应的库函数,并创建 writer 实例:
from torch.utils.tensorboard import SummaryWriter
# 创建实例,指定存储的文件夹名称
writer = SummaryWriter("log")
2. 介绍函数用法:writer.add_scalar ( )
# 一个例子:绘制:y = 2x 函数图像
# writer.add_scalar("图像标题", y轴(训练步数), x轴(需存储的值))
for i in range(100):
writer.add_scalar("y=2x",2*i,i)
3. 如何打开 Tensorboard 生成的可视化文件:
在终端 (terminal) 输入指令:tensorboard --logdir=log(指定文件夹)--port=6007(指定端口号)
输出的可视化结果:
4. 关闭 writer 实例:
# 关闭
writer.close()
writer.add_image ( ) 用法介绍:
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
# 存储可视化文件的 “文件夹名称”
writer = SummaryWriter("pic")
# 此处自行修改并填写:需显示的图片路径名称
image_path = "..."
# 读取图片,并调整格式
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
# writer.add_image方法,标题:test,图片内容:img_array,训练步数(y轴):1,图片格式设置:‘HWC’
writer.add_image("test", img_array, 1, dataformats='HWC')
writer.close()
输出的可视化结果:
writer.add_graph ( ) 用法介绍:
import torch
from torch import nn
from torch.nn import Flatten, Sequential
from torch.utils.tensorboard import SummaryWriter
# 搭建图示网络
class M (nn.Module):
# 定义后续将使用的网络模块
def __init__ (self):
super(M, self).__init__()
# 使用 Sequential,有助于简化网络搭建过程,如下所示,以此类推
self.model1 = Sequential (
nn.Conv2d(3, 32, 5, padding=2),
nn.MaxPool2d(2),
nn.Conv2d(32, 32, 5, padding=2),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, 5, padding=2),
nn.MaxPool2d(2),
Flatten(),
nn.Linear(1024, 64),
nn.Linear(64, 10)
)
# 定义前向传播
def forward(self, input):
input = self.model1(input)
return input
# 初始化上述定义的神经网络
m1 = M()
# 测试
q = torch.ones((64,3,32,32))
t = m1(q)
print(t.shape)
writer = SummaryWriter("log")
# 向函数 writer.add_graph 内,分别输入模型 — m1,输入模型的具体数据 - q
writer.add_graph(m1,q)
writer.close()
输出的可视化结果: