node 做的网站后端,中小企业上市公司名单,宜春建设网站,双轨网站开发官方文档torch.utils.tensorboard — PyTorch 2.3 documentation
TensorBoard简介
TensorBoard是一个可视化工具#xff0c;它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候#xff0c;我们可以设置不同的参数#xff08;比如#xff1…官方文档torch.utils.tensorboard — PyTorch 2.3 documentation
TensorBoard简介
TensorBoard是一个可视化工具它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候我们可以设置不同的参数比如权重W、偏置B、卷积层数、全连接层数等使用TensorBoader可以很直观的帮我们进行参数的选择。它通过运行一个本地服务器来监听6006端口。在浏览器发出请求时分析训练时记录的数据绘制训练过程中的图像。
TensorBoard 是Google开发的一个机器学习可视化工具。其主要用于记录机器学习过程例如
记录损失变化、准确率变化等记录图片变化、语音变化、文本变化等例如在做GAN时可以过一段时间记录一张生成的图片绘制模型
TensorBoard下载 pip install tensorboard -i https://pypi.tuna.tsinghua.edu.cn/simpleTensorBoard的使用
Pytorch使用Tensorboard主要用到了三个API
SummaryWriter这个用来创建一个log文件TensorBoard面板查看时也是需要选择查看那个log文件。add_something 向log文件里面增添数据。例如可以通过add_scalar增添折线图数据add_image可以增添图片。close当训练结束后我们可以通过close方法结束log写入。
接下来我们来模拟记录训练过程中准确率的变化。
首先需要new一个SummaryWriter对象
from torch.utils.tensorboard import SummaryWriterwriter SummaryWriter(logs)
当运行完该行代码后可以看到当前目录下生成了一个logs文件夹并且里面有event日志
此时已经可以在终端启动tensorboard来查看了: tensorboard --logdirlogs --port6007SummaryWriter中一些子类函数的使用
1.add_scalar()添加标量到SummaryWriter中
1参数详解 tag(string): Data的指定方式图表的标题 scalar(float or string/blobname): 需要存储的数值 global_step(int): 训练的步数Global step value to record结合scalar那就是训练到多少步的时候scalar的数值是多少。 walltime(float): 不常用参数可选Optional override default walltime(time.time()) with seconds after epoch of event
更直观的参数解释可以表示为下图的方式 2代码
from torch.utils.tensorboard import SummaryWriterwriterSummaryWriter(logs) #将事件文件存储到logs这个文件夹底下#绘制一个y2x的图像
for i in range(100):writer.add_scalar(yx,2*i,i) # writer.add_scalar(图像标题y轴x轴)
writer.close()
2.add_image()添加image到SummaryWriter
1参数详解 tag(string): Data的指定方式图表的标题 img_tensor(torch.Tensor, numpy.array, or string/blobname): 图像数据 global_step(int): 训练的步数Global step value to record结合img_tensor那就是训练到多少步的时候img_tensor的图像是什么。 walltime(float): 不常用参数可选Optional override default walltime(time.time()) with seconds after epoch of event
默认输入图像数据形状 3, H, W:三通道高宽 注意如果输入数据为 (H, W, 3) 也是可以的但是需要设置dataformats,如dataformatsHWC
2代码
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Imagewriter SummaryWriter(logs)
image_path img_data/train/ants_image/5650366_e22b7e1065.jpg
img_PIL Image.open(image_path)
img_array np.array(img_PIL)print(type(img_array))
print(img_array.shape)
writer.add_image(test, img_array,2, dataformatsHWC)writer.close()
3.add_images()添加image到SummaryWriter
add_images(tag, img_tensor, global_stepNone, walltimeNone, dataformatsNCHW)
参数 tag(string) -数据标识符 img_tensor(torch.Tensor,numpy.array 或者字符串/blob 名称) -图像数据 global_step(int) -要记录的全局步长 值 walltime(float) -事件纪元后的可选覆盖默认 walltime (time.time()) 秒 dataformats(string) -NCHW、NHWC、CHW、HWC、HW、WH等形式的图像数据格式规范。
将批量图像数据添加到摘要中。
请注意这需要pillow 包。
形状
img_tensor默认为N3WH 。如果指定dataformats则接受其他形状。例如NCHW 或 NHWC。
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter# 准备的测试数据集
test_data torchvision.datasets.CIFAR10(root./dataset, trainFalse, transformtorchvision.transforms.ToTensor())test_loader DataLoader(datasettest_data, batch_size64, shuffleFalse, num_workers0, drop_lastTrue)
# shuffle 是否打乱 False不打乱
# drop_last 最后一轮数据不够时是否舍弃 true舍弃#img, target test_loader[0] TypeError: DataLoader object is not subscriptable
img, target test_data[0]
print(img.shape)
print(target)writer SummaryWriter(dataloader)for epoch in range(2):step 0for data in test_loader:imgs, targets data# print(imgs.shape)# print(targets)writer.add_images(Epoch:{}.format(epoch),imgs,step)step step1writer.close() 参考
TensorBoard快速入门Pytorch使用TensorBoard-CSDN博客
深度学习二——TensorBoard的使用 - 码头牛牛 - 博客园 (cnblogs.com)
Pytorch学习笔记之tensorboard - 奥辰 - 博客园 (cnblogs.com)
Python PyTorch SummaryWriter.add_images用法及代码示例 - 纯净天空 (vimsky.com)