当前位置: 代码迷 >> 综合 >> PyTorch 使用 TensorBoard 中的 writer.add_scalar 与 writer.add_scalars 的区别
  详细解决方案

PyTorch 使用 TensorBoard 中的 writer.add_scalar 与 writer.add_scalars 的区别

热度:92   发布时间:2024-01-14 06:47:52.0

writer.add_scalar()

  • 功能:将标量添加到 summary
  • 参数:
    • tag (string):数据标识符
    • scalar_value (float or string/blobname):要保存的数值
    • global_step (int):全局步值
    • walltime (float):可选参数,用于记录发生的时间,默认为 time.time()

writer.add_scalars()

  • 功能:添加多个标量数据到 summary 中
  • 参数:
    • main_tag (string):tag 的父级名称
    • tag_scalar_dict (dict):保存 tag 及相应的值的键值对
    • global_step (int):全局步值
    • walltime (float) 可选参数,可选参数,用于记录发生的时间,默认为 time.time()

两者区别

  • writer.add_scalar() 添加一个标量到 summary
  • writer.add_scalars() 可以同时添加多个标量到 summary 中,多个标量需要使用键值对的形式输入

两种共同点

  • 第一个参数可简单理解为保存到 tensorboard 日志文件中的标量图像的名称
  • 第二个参数可简单理解为图像的 y 轴数据
  • 第三个参数可简单理解为图像的 x 轴数据
  • 第四个参数都是可选参数,用于记录发生的时间,默认为 time.time()

实例

import numpy as np
from torch.utils.tensorboard import SummaryWriter  # 也可以使用 tensorboardX
# from tensorboardX import SummaryWriter  # 也可以使用 pytorch 集成的 tensorboardwriter = SummaryWriter()
for epoch in range(100):writer.add_scalar('add_scalar/squared', np.square(epoch), epoch)writer.add_scalars("add_scalars/trigonometric", {'xsinx': epoch * np.sin(epoch/5), 'xcosx': epoch* np.cos(epoch/5), 'xtanx': np.tan(epoch/5)}, epoch)writer.close()
  • 以上代码运行结束后,会在当前的工作目录下自动生一个 runs 目录
    在这里插入图片描述

查看结果

# cd 到当前的工作目录下,如:
cd /User/dell/# 运行 tensorboard
tensorboard --logdir "./runs"

浏览器中输入查看的地址

http://127.0.0.1:6006/

在这里插入图片描述

参考

  • https://pytorch.org/docs/stable/tensorboard.html
  相关解决方案