b站小土堆pytorch学习记录——P7-P8 Tensorboard的使用

2024-03-02 07:52

本文主要是介绍b站小土堆pytorch学习记录——P7-P8 Tensorboard的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、前置知识
    • 1.Tensorboard是什么
    • 2.SummaryWriter
    • 3.add_scalar()
    • 4.add_image()
  • 二、代码
    • 1.一次函数
    • 2.蚂蚁和蜜蜂图片

一、前置知识

1.Tensorboard是什么

TensorBoard 是 TensorFlow 的可视化工具,它允许开发者可视化模型的图(graph)、指标(metrics)、参数分布等多种数据。TensorBoard 通过读取 TensorFlow 程序运行过程中输出的日志文件来工作,这些日志文件包含了关于模型训练、评估的详细信息。使用 TensorBoard,开发者可以更直观地理解、调试和优化他们的 TensorFlow 程序。

TensorBoard 的主要功能包括:
**图可视化:**展示 TensorFlow 计算图的结构,帮助开发者理解模型的构建。
**指标跟踪:**如损失和准确率等,在训练过程中动态地展示这些指标的变化,便于监控模型的训练进度。
**参数分布:**显示模型参数(如权重和偏置)随时间的变化情况,有助于分析模型的学习过程。
**嵌入向量:**可视化高维数据的低维表示,常用于理解词嵌入和其他类型的嵌入。
**图像和文本展示:**如果模型处理的是图像或文本数据,TensorBoard 可以直接在界面上展示这些数据及其对应的模型输出,方便进行结果分析。

2.SummaryWriter

在 PyTorch 中,使用 SummaryWriter 类来记录日志信息,以便通过 TensorBoard 进行可视化。
当创建一个 SummaryWriter 实例并指定一个目录(例如 “logs”)时,它会将所有的日志数据保存到这个目录下。这些数据包括训练过程中的损失、准确率、模型参数分布、图像、模型计算图等。

使用步骤:

#(1)导入必要的库
import torch
from torch.utils.tensorboard import SummaryWriter
#(2)创建实例
writer = SummaryWriter("logs")
#这行代码创建一个 SummaryWriter 对象,所有通过这个对象记录的日志都会被保存到当前工作目录下的 "logs" 文件夹中。如果 "logs" 文件夹不存在,它会被自动创建。
#(3)记录数据
#   .....
#(4)查看TensorBoard
tensorboard --logdir=logs
#(5)关闭SummaryWriter
writer.close()

3.add_scalar()

可参考博客:
add_scalar与add_image

add_scalar() 是 PyTorch TensorBoard 的 SummaryWriter 类中的一个方法,用于记录标量数据(如损失值、准确率等)随时间的变化。

函数原型:
add_scalar(tag, scalar_value, global_step=None, walltime=None)
tag (string): 数据的标识符,用于 TensorBoard 中的显示。
scalar_value (float or string/blobname): 要记录的标量值。
global_step (int, optional): 记录标量的全局步数,通常用于表示训练过程中的时间点。提供此参数可以帮助 TensorBoard 绘制标量随时间(或训练步骤)的变化图。
walltime (float, optional): 数据点的实际时间戳,默认为 time.time() 的值。通常不需要手动设置。

个人理解:
add_scalar(标签,y轴数据,x轴数据)

4.add_image()

可参考博客:
add_scalar与add_image

add_image() 是 PyTorch TensorBoard 的 SummaryWriter 类中的一个方法,用于记录和可视化图像数据。

函数原型:
add_image(tag, img_tensor, global_step=None, walltime=None, dataformats=‘CHW’)
tag (string): 图像的标识符,用于 TensorBoard 中的显示。
img_tensor (Tensor): 要记录的图像数据。这个张量应该是 3D (C x H x W) 或者 4D (N x C x H x W),其中 N 是图像数量,C 是通道数(例如,对于彩色图像通常是 3),H 是图像高度,W 是图像宽度。
global_step (int, optional): 记录图像的全局步数,通常用于表示训练过程中的时间点。
walltime (float, optional): 数据点的实际时间戳,默认为 time.time() 的值。通常不需要手动设置。
dataformats (string): 指定图像数据的维度排列方式。默认为 ‘CHW’,但也可以是 ‘NCHW’、‘NHWC’ 等。

个人理解:
add_image(标签,图像数据,第几步,图像维度排列方式)

二、代码

1.一次函数

from torch.utils.tensorboard import SummaryWriterwriter=SummaryWriter("logs")
#y=x
#for i in range(100):#writer.add_scalar("y=x",i,i)#y=3x
for i in range(100):writer.add_scalar("y=3x",3*i,i)writer.close()

结果:
在这里插入图片描述

2.蚂蚁和蜜蜂图片

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np#创建一个 SummaryWriter 对象
#所有通过这个对象记录的日志都会被保存到当前工作目录下的 "logs" 文件夹中
writer=SummaryWriter("logs")#蚂蚁的图片,作为step1
image_path1="data/train/ants_image/0013035.jpg"
#使用Pillow打开图片
image_PIL1=Image.open(image_path1)
#将PIL图像对象转换为NumPy数组
#如果图像是彩色的,转换后的 NumPy 数组将具有三个维度(高度、宽度、颜色通道),通道顺序通常为 RGB。
#如果图像是灰度的,则数组将只有两个维度(高度、宽度)
image_array1=np.array(image_PIL1)#蜜蜂的图片,作为step2
image_path2="data/train/bees_image/16838648_415acd9e3f.jpg"
image_PIL2=Image.open(image_path2)
image_array2=np.array(image_PIL2)writer.add_image("test",image_array1,1,dataformats='HWC')
writer.add_image("test",image_array2,2,dataformats='HWC')writer.close()

结果:
在这里插入图片描述在这里插入图片描述
或者也可以这么写:

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import torchwriter = SummaryWriter("logs")image_path1 = "data/train/ants_image/0013035.jpg"
image_PIL1 = Image.open(image_path1)
#转换为PyTorch张量并调整通道顺序
image_array1 = torch.tensor(np.array(image_PIL1)).permute(2, 0, 1)  image_path2 = "data/train/bees_image/16838648_415acd9e3f.jpg"
image_PIL2 = Image.open(image_path2)
# 转换为PyTorch张量并调整通道顺序
image_array2 = torch.tensor(np.array(image_PIL2)).permute(2, 0, 1)  writer.add_image("test", image_array1, 1)
writer.add_image("test", image_array2, 2)writer.close()

这篇关于b站小土堆pytorch学习记录——P7-P8 Tensorboard的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765415

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma