TensorBoard中的add_image()和add_scalar()

news/2024/12/1 8:05:24/

目录

  • add_image()
    • 常见用法
    • 参数解释
    • 示例:记录每个训练步骤中的图像
  • add_scalar()
    • 常见用法
    • 参数解释
    • 示例:记录损失和准确率
    • 常见应用场景

add_image()

add_image() 是 TensorBoard 的一个 API 方法,用于将图像添加到 TensorBoard 的可视化面板中,以便在训练过程中查看模型的图像数据。通常,add_image() 用于记录训练过程中生成的图像、模型预测的图像、或者其他图像类型数据。这样,用户可以通过 TensorBoard 实时监控模型的训练过程。

常见用法

python">import torch
from torch.utils.tensorboard import SummaryWriter
import torchvision# 创建 TensorBoard writer
writer = SummaryWriter()# 假设我们有一个图像(例如一个 tensor 或者从 dataset 中获取)
image_tensor = torch.randn(3, 64, 64)  # 3通道,64x64的随机图像# 添加图像到 TensorBoard
writer.add_image('Random Image', image_tensor)# 关闭 writer
writer.close()

参数解释

add_image() 的参数包括:

  1. tag: 图像的标签(字符串),可以在 TensorBoard 中用于标识不同的图像。
  2. img_tensor: 需要记录的图像数据。这个数据通常是一个 tensor,形状为 (C, H, W),其中 C 是通道数(例如 RGB 为 3),H 是图像的高度,W 是图像的宽度。
  3. global_step (可选): 用于记录图像的步骤标记,通常是在训练中记录的步数或 epoch。
  4. walltime (可选): 图像添加的时间,默认是当前时间。

示例:记录每个训练步骤中的图像

python"># 假设你在训练过程中,每训练完一个 batch,就记录一个图像
for step, (images, labels) in enumerate(train_dataloader):# 这里假设 images 是 batch 中的一张图片writer.add_image('Training Image', images[0], step)

这样,每当训练到一个新步骤时,images[0](一个 batch 中的第一张图像)都会被添加到 TensorBoard 上,供用户查看。

add_scalar()

add_scalar() 是 TensorBoard 的一个 API 方法,用于将标量数据添加到 TensorBoard 的可视化面板中,以便监控模型训练过程中的一些指标(如损失、准确率等)。你可以通过 add_scalar() 方法记录一个标量值(例如训练过程中的损失值或准确率),并将其与训练步骤(global_step)关联,TensorBoard 会根据这些标量数据生成相应的折线图或其他可视化图形。

常见用法

python">import torch
from torch.utils.tensorboard import SummaryWriter# 创建 TensorBoard writer
writer = SummaryWriter()# 假设我们有一些训练过程中的标量数据
for step in range(100):loss = 0.01 * step  # 假设损失值逐渐减小accuracy = 100 - 0.1 * step  # 假设准确率逐渐提高# 记录损失值到 TensorBoardwriter.add_scalar('Loss', loss, step)# 记录准确率到 TensorBoardwriter.add_scalar('Accuracy', accuracy, step)# 关闭 writer
writer.close()

参数解释

add_scalar() 的参数包括:

  1. tag: 标量的标签(字符串),用于在 TensorBoard 中区分不同的标量曲线,例如 ‘Loss’, ‘Accuracy’ 等。
  2. scalar_value: 需要记录的标量值,通常是一个浮动数值,表示某个指标(例如损失值、准确率等)。
  3. global_step (可选): 训练的步数,通常是当前的训练迭代(epoch)或 mini-batch 的编号,用于标识标量数据的时间戳。这个步骤会被用作横轴,帮助跟踪标量值随训练进度的变化。
  4. walltime (可选): 数据记录的时间戳,默认是当前时间。

示例:记录损失和准确率

在训练过程中,通常需要记录训练损失和准确率。使用 add_scalar() 方法可以将这些值保存下来并在 TensorBoard 中可视化:

python"># 假设每个 epoch 训练时都更新损失和准确率
for epoch in range(10):train_loss = 0.5 * epoch  # 假设损失在减少train_accuracy = 90 + 1.5 * epoch  # 假设准确率在提高# 记录损失和准确率到 TensorBoardwriter.add_scalar('Train/Loss', train_loss, epoch)writer.add_scalar('Train/Accuracy', train_accuracy, epoch)

常见应用场景

  1. 损失函数曲线:在训练过程中,你可以用 add_scalar() 方法记录每个训练步骤或每个 epoch 的损失值,帮助你跟踪模型是否正在收敛。

    python">writer.add_scalar('Loss/train', loss, epoch)
    
  2. 准确率曲线:你也可以记录每个 epoch 或 batch 的准确率或其他评价指标,查看模型的性能变化。

    python">writer.add_scalar('Accuracy/train', accuracy, epoch)
    
  3. 学习率曲线:可以记录学习率的变化,特别是在使用学习率调度器时,查看学习率的变化趋势。

    python">writer.add_scalar('Learning Rate', lr, epoch)
    

http://www.ppmy.cn/news/1551428.html

相关文章

力扣第 77 题 组合

题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按任意顺序返回答案。 示例 示例 1 输入: n 4, k 2输出: [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]示例 2 输入: n 1, k …

3.29【机器学习】第五章作业实现

import numpy as np def RBF(x, center_i, beta_i):dist np.sum(pow((x - center_i),2))rho np.exp(-beta_i*dist)return rho# 输出为1 class RBF_network:def __init__(self):self.hidden_num 0self.y 0def createNN(self, input_num, hidden_num, learning_rate, center…

计算机网络八股整理(四)

目录 八股整理(四)应用层1:怎么解决tcp粘包?2:tcp的拥塞控制介绍一下? 网络场景1:描述一下打开百度首页后发生的网络过程?2:网页非常慢转圈圈的时候需要从哪些方面考虑问题&#xff…

Hive 数据模型 与 Hive SerDe(序列化与反序列化)

Hive 数据模型 Hive 的数据模型是基于 Hadoop 的分布式文件系统(HDFS)上的数据存储模型,提供了类似于关系数据库的结构(如表、分区和桶),但与传统的关系型数据库不同,Hive 更侧重于海量数据的查…

实时数据开发|Flink如何实现不同数据源输入--DataSource模块

DataStream 编程模型 Flink定义DataStream API让用户灵活且高效的编写流式应用。主要分为3部分:DataSource模块,Transformation模块以及DataSink模块。 DataSource模块,主要定义了数据接入功能,将外部数据接入至flink&#xff0…

NCL数据分析与处理

原文:NCL数据分析与处理https://mp.weixin.qq.com/s/0a9_gllN43WfuZgNHKiyDw?token1542274306&langzh_CNNCL用于科学数据计算和可视化的免费软件。它有着非常强大的文件输入和输出功能,可读写netCDF-3、netCDF-4 classic、HDF4、binary、ASCII数据&…

《向量数据库指南》——MoE应用:解锁深度学习新境界的钥匙

在深度学习的广阔天地里,混合专家(MoE)模型如同一把锐利的钥匙,正逐步解锁着各种复杂应用场景的新境界。作为大禹智库的向量数据库高级研究员,同时也是《向量数据库指南》的作者,我深感MoE模型在推动AI技术向前发展中所扮演的重要角色。今天,我将带大家深入探讨MoE模型在…

flutter 多语言 国际化 flutter Intl的使用方法

一使用 flutter Intl Android studio需要添加插件 flutter Intl 路径 File>>Settings>>Plugins>>Marketplace>>flutter Intl>>Install 安装插件重新启动Android studio Android studio 创建一个flutter测试的新项目 在项目文件中配置 ** 添加…