关于tensorboard介绍的翻译

原文地址《Introducing Tensor Board.dev: a new way to share your ML experiment results》

Tensorboard作为tensorflow的可视化组件,通常为研究者和工程师提供可视化和理解机器学习的实验结果。它可以被用来

  • Tracking experiment metrics(记录实验指标)
  • Visualizing models(可视化模型)
  • Profiling ML programs(分析机器学习运行过程)
  • Visualizing hyperparameter tuning experiments(可视化超参数调节实验)

除了可以简单的可视化模型,Tensorboard也可以多端合作。你可能想分享超参变动对结果的影响、解释一个复杂的训练过程和从失败中获取帮助

我们之前加过人们尝试分享TensorBoard的截图来实现,但是截图并不是可交互的并且没有展示所有的细节。在Google,研究人员和工程师往往通过tensorboard 可视化结果给团队成员来讨论观点。我们的目标是为更广泛的社区提供这个能力

这也是为什么我们开发tensorboard.dev:一项托管服务(目前正在预览中),使您能够轻松地免费托管、跟踪和共享您的ML实验。只需上传您的TensorBoard日志,即可收到一个每个人都可以查看的链接,无需安装或设置。

If a picture is worth a thousand words, we believe an interactive TensorBoard can be even more valuable.

使用逻辑

通过SummaryWriter()类来实现数据保存和展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from torch.utils.tensorborad import SummaryWriter
write = SummaryWrite('../logs') # 指定log保存的位置

# 常用方法
add_scalar(tag, scalar_value, global_step=None, walltime=None, new_style=False, double_precision=False)
add_scalars(main_tag, tag_scalar_dict, global_step=None, walltime=None)
add_histogram(tag, values, global_step=None, bins='tensorflow', walltime=None, max_bins=None)
add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
add_images(tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW')
add_figure(tag, figure, global_step=None, close=True, walltime=None)
add_video(tag, vid_tensor, global_step=None, fps=4, walltime=None)
add_audio(tag, snd_tensor, global_step=None, sample_rate=44100, walltime=None)
add_text(tag, text_string, global_step=None, walltime=None)
add_graph(model, input_to_model=None, verbose=False, use_strict_trace=True)
add_embedding(mat, metadata=None, label_img=None, global_step=None, tag='default', metadata_header=None)


实际应用

1
2
3
4
5
6
7
8
9
10
11
12
13
from torch.utils.tensorboard import SummaryWriter
import torch.nn as nn
import torch
import numpy as np

input = torch.zeros(1,20)
net = nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10))
writer = SummaryWriter('./logs')
for epoch in range(100):
writer.add_scalar('Loss/train',np.random.random(),epoch)
writer.add_scalar('Loss/test',np.random.random(),epoch)
writer.add_scalar('Accuarcy/train',np.random.random(),epoch)
writer.add_graph(net,input_to_model=input)

关于tensorboard介绍的翻译
https://blog.tjdata.site/posts/5ddcb6b8.html
作者
chenxia
发布于
2023年7月5日
许可协议