深度学习-Tensorboard可视化面板
创始人
2024-03-25 14:29:22
0

文章目录

  • 简介
  • 安装
  • SummaryWriter
    • 新建
    • 添加数字
    • 运行
    • 添加图片
    • 添加直方图
  • 实战

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

在这里插入图片描述

简介


Tensorboard是Tensorflow官方提供的实用可视化工具,可以将模型训练过程中的各种数据保存到本地,然后在web端可视化展现这些信息,直观便捷的方便我们进行优化调试。

官方文档:https://github.com/tensorflow/tensorboard/blob/master/README.md

相应环境搭建可参考我这篇博客:深度学习-Pytorch环境搭建(Windows)

安装


使用pip安装即可。

pip install tensorboard

SummaryWriter

新建


新建一个SummaryWriter对象,保存待观测数据。

    def __init__(self,log_dir=None,comment="",purge_step=None,max_queue=10,flush_secs=120,filename_suffix="",):

重要参数:

  • log_dir
    保存目录,默认为runs/**CURRENT_DATETIME_HOSTNAME**
  • comment
    保存文件名中添加comment

一般不同实验数据,可以用不同的路径以区分,如runs/exp1
新建好Writer对象后,便是往其中添加各种类型的数据,这里介绍主要的几种:数字 (scalar)、图片 (image)、直方图 (histogram)、模型 (graph)。

添加数字


使用add_scalars()添加数字,也是最常用的。

Args:main_tag (string): The parent name for the tagstag_scalar_dict (dict): Key-value pair storing the tag and corresponding valuesglobal_step (int): Global step value to recordwalltime (float): Optional override default walltime (time.time())seconds after epoch of event

参数:

  • main_tag
    标记名,文件名前缀
  • tag_scalar_dict
    k-v格式存储的数据
  • global_step
    全局步长值,即标注当前是第几步
  • walltime
    记录发生的时间,默认为 time.time()
    例子:
from torch.utils.tensorboard import SummaryWriter
import numpy as npwriter = SummaryWriter(log_dir='runs/test')
r = 5
for i in range(100):writer.add_scalars(main_tag='run_14h',tag_scalar_dict={'xsinx': i * np.sin(i / r), 'xcosx': i * np.cos(i / r), 'tanx': np.tan(i / r)},global_step=i)
writer.close()

在这里插入图片描述

运行


复制日志的绝对路径
在这里插入图片描述
进入conda环境
win+r,activate base,conda activate 你的环境名

运行tensorboard,指定前面复制的路径,可以自定义端口号,默认6006

tensorboard --logdir=日志路径 --port=自定义端口号

在这里插入图片描述
打开http://localhost:6006/或http://127.0.0.1:6006/,即可实现web可视化。

在这里插入图片描述
页面上相关设置可以自己探索~

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

添加图片


使用add_image()添加图片。

Args:tag (string): Data identifierimg_tensor (torch.Tensor, numpy.array, or string/blobname): Image dataglobal_step (int): Global step value to recordwalltime (float): Optional override default walltime (time.time())seconds after epoch of eventdataformats (string): Image data format specification of the form CHW, HWC, HW, WH, etc.

参数:

  • tag
    标记名
  • img_tensor
    图片源,可以是torch.Tensor或numpy.array等格式
  • global_step
    全局步长值,即标注当前是第几步
  • dataformats
    图片源格式,也就是图片Height、Width、Channel的顺序,默认(3, H, W)。

例子:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter(log_dir='runs/image')
img_PIL = Image.open('icon.jpg')
img_array = np.array(img_PIL)
print(img_array.shape)
writer.add_image(tag='image', img_tensor=img_array, dataformats='HWC')
writer.close()

在这里插入图片描述

运行同上一节。
在这里插入图片描述

添加直方图


使用add_histogram()添加直方图。

Args:tag (string): Data identifiervalues (torch.Tensor, numpy.array, or string/blobname): Values to build histogramglobal_step (int): Global step value to record bins (string): One of {'tensorflow','auto', 'fd', ...}. This determines how the bins are made. You can find other options in: https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html walltime (float): Optional override default walltime (time.time()) seconds after epoch of event

参数解释同上。

例子:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
writer = SummaryWriter(log_dir='runs/histogram')
for i in range(10):x = np.random.random(1000)writer.add_histogram('distribution centers', x + i, i)
writer.close()

运行同上。
在这里插入图片描述

还有结构图、嵌入向量等,参考文档照葫芦画瓢~

实战


构建一个简单的线性模型,可视化损失、参数的变化。

from torch.utils.tensorboard import SummaryWriter
import numpy as np
import torch
from torch import nnwriter = SummaryWriter(log_dir='runs/graph')
data = torch.randn(3, 5)  # 数据
model = nn.Sequential(nn.Linear(5, 3), nn.ReLU(), nn.Linear(3, 1))  # 模型
optimizer = torch.optim.Adam(model.parameters(), lr=1e-2)
epochs = 100
for epoch in range(epochs):loss = (model(data).sum()-1)**2optimizer.zero_grad()loss.backward()optimizer.step()writer.add_scalar('Loss', loss.item(), epoch)  # 记录损失的变化writer.add_histogram('model[0].weight', model[0].weight, epoch)  # 记录参数的变化
writer.close()


在这里插入图片描述

原创不易,请勿转载本不富裕的访问量雪上加霜
博主首页:https://wzlodq.blog.csdn.net/
来都来了,不评论两句吗👀
如果文章对你有帮助,记得一键三连❤

相关内容

热门资讯

每周股票复盘:广电网络(600... 截至2025年12月26日收盘,广电网络(600831)报收于4.2元,较上周的4.36元下跌3.6...
每周股票复盘:新疆火炬(603... 截至2025年12月26日收盘,新疆火炬(603080)报收于22.85元,较上周的22.73元上涨...
每周股票复盘:瀚川智能(688... 截至2025年12月26日收盘,瀚川智能(688022)报收于15.3元,较上周的14.42元上涨6...
每周股票复盘:中粮糖业(600... 截至2025年12月26日收盘,中粮糖业(600737)报收于17.27元,较上周的17.18元上涨...
每周股票复盘:马钢股份(600... 截至2025年12月26日收盘,马钢股份(600808)报收于4.22元,较上周的3.82元上涨10...
每周股票复盘:内蒙一机(600... 截至2025年12月26日收盘,内蒙一机(600967)报收于16.34元,较上周的16.05元上涨...
富达基金投顾业务负责人戴旻:封... 由三亚市人民政府主办,《财经》杂志、财经网、《财经智库》、三亚中央商务区管理局、三亚经济研究院承办的...
海南大谷国际园区董事长张焱:以... 由三亚市人民政府主办,《财经》杂志、财经网、《财经智库》、三亚中央商务区管理局、三亚经济研究院承办的...
每周股票复盘:汉马科技(600... 截至2025年12月26日收盘,汉马科技(600375)报收于5.87元,较上周的5.92元下跌0....
每周股票复盘:中天科技(600... 截至2025年12月26日收盘,中天科技(600522)报收于18.4元,较上周的18.37元上涨0...