TensorBoard

news2024/11/26 2:53:20

1、概念

TensorBoard可以看作是一个“训练监控仪表盘”,可以

将训练过程中的数据可视化,让你通过图表直观地看到模型的表现,

识别问题,并进行调试和优化。

TensorFlow是用来训练模型的深度学习框架,在使用tensorflow训练模型时,可以通过tensorboard来对数据进行可视化,帮助优化模型。

Pytorch也是一种深度学习框架。

  • TensorFlow:功能强大,但初学者可能觉得上手稍难,适合工业生产中应用
  • PyTorch:语法简洁,易于理解,许多用户觉得它更友好,在学术界中非常受欢迎

(一些项目可能会在研究阶段使用 PyTorch,随后在生产环境中使用 TensorFlow)

2、如何使用TensorBoard?(代码)

(1)安装tensorflow或pytorch后,引入SummaryWriter类

SummaryWriter:用来记录数据的指标

from torch.utils.tensorboard import SummaryWriter

(2)创建SummarWriter实例及其关联文件夹

writer=SummaryWriter("logs") 

logs是即将创建的文件夹名称(日志目录)

(3)记录训练过程中产生的数据

for i in range(100):
    writer.add_scalar("y=3x",3*i,i)

 1、writer.add_scalar():记录标量数据(如损失、准确率等)并进行可视化

writer.add_scalar(tag, scalar_value, global_step=None)

tag:标签(相当于标题)

scalar_value:要记录的标量值(y轴的值)

global_step:记录的步数(x轴的值)

2、writer.add_image():记录图像数据并进行可视化

writer.add_image(tag, image, global_step=None, dataformats='CHW')

tag:标签(标题)

image:要记录的图像(torch.Tensor或numpy.array类型)

global_step:记录的步数

dataformats:数据格式(默认为 'CHW'(通道-高度-宽度),

注意要看数据的格式是不是CHW,print(img_array.shape)可以查看

(4)关闭文件夹

writer.close() 

 标量数据:

from torch.utils.tensorboard import SummaryWriter

writer=SummaryWriter("logs")

for i in range(100):
    writer.add_scalar("y=3x",3*i,i)

writer.close()

图像数据:

法一:先生成PIL对象,再将其转换成numpy对象,最后用add_image(第二个参数用numpy类型的)

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np

writer=SummaryWriter("logs") #创建SummaryWriter实例对象和日志文件logs

img_path="dataset/hymenoptera_data/train/bees/359928878_b3b418c728.jpg"
img_PIL=Image.open(img_path) #生成图像的PIL对象
img_array=np.array(img_PIL) #将PIL.Image类型转为numpy.array类型

print(img_array.shape)
writer.add_image("train",img_array,5,dataformats='HWC')

writer.close()

法二:先生成PIL对象,再将其转换成tensor对象,最后用add_image(第二个参数是tensor类型的) 

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
from torchvision import transforms

writer=SummaryWriter("logs")

img_path=r"C:\Users\zzr\Desktop\Learning\dataset\hymenoptera_data\train\bees\16838648_415acd9e3f.jpg"
img=Image.open(img_path) #PIL.Image类型
tensor_trans=transforms.ToTensor() #生成ToTensor类的实例
img_tensor=tensor_trans(img) #把PIL.Image类型转换成torch.Tensor类型

print(img_tensor.shape)
writer.add_image("train1",img_tensor,1,dataformats='CHW')

writer.close()

 

3、如何查看可视化结果?

 (1)在终端启动TensorBoard:

tensorboard --logdir=logs --port=6007

 --logdir:指定TensorBoard日志文件的目录(就是SummarWriter创建的文件名)

--port:指定端口是6007,避免与默认的6006端口产生冲突(可以多个端口同时运行)

(为什么要在终端启动TensorBoard?

不同的执行环境:TensorBoard 通常需要在独立的进程中运行,以便持续地、实时地监控训练过程,而 Python 脚本通常是一次性执行的;

阻塞问题:在命令行中启动 TensorBoard 通常会占用一个终端窗口,但它不会阻塞整个系统。你可以在一个终端窗口中启动 TensorBoard,然后在另一个终端窗口中执行其他命令或运行训练脚本

简化管理:通过命令行启动 TensorBoard,可以更灵活地指定日志目录、端口等参数)

(2)查看结果

打开浏览器,访问 http://localhost:6007/

(3)如果因为tag未更改而与上一次的事件进行了拟合,则删除logs文件夹,重新运行生成即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2207512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+Vue的疫情物资管理系统(带1w+文档)

基于SpringBootVue的疫情物资管理系统(带1w文档) 基于SpringBootVue的疫情物资管理系统(带1w文档) 本课题研究和开发疫情物资管理系统管理系统,让安装在计算机上的该系统变成管理人员的小帮手,提高疫情物资管理系统信息处理速度,规范疫情物资…

内网wordpress更换IP后无法访问的解决办法

一、现象 一台装有wordpress的台式机,从一个校区移到了另一个校区,更换了IP地址,导致无法正常访问。 二、分析 安装wordpress的时候里面的ip(或域名)都已固定。安装好后,内网通过IP访问&am…

基于Maven 运行OpenRewrite的快速示例

本篇介绍一个基于Maven 运行OpenRewrite 的快速示例,展示了如何在Maven项目中使用OpenRewrite 进行代码重构。 本篇达成的效果是使用OpenRewrite 对源码自动格式化。 达成效果期望 项目中有一个类AutoFormatDemo ,类的代码如下 public class AutoFor…

ubuntu24 root用户修改密码 ubuntu新系统没有创建root用户

ubuntu 系统在虚拟机新建一个ubuntu24,但是在配置系统时候,并没有配置root密码,只是新增了一个自定义账号于密码,在创建好后,可以登录系统,设置root密码~ 1. ubuntu系统初始化后,登录自建账号 …

Nullinux:一款针对Linux操作系统的安全检测工具

关于Nullinux Nullinux是一款针对Linux操作系统的安全检测工具,广大研究人员可以利用该工具针对Linux目标设备执行网络侦查和安全检测。 该工具可以通过SMB枚举目标设备的安全状况信息,其中包括操作系统信息、域信息、共享信息、目录信息和用户信息。如…

C# 结构和类

要点: 1、结构概述 2、结构的使用 一 为什么需要结构 问题: System.Drawing.Color有很多颜色值,它是一个枚举吗? 正常人眼可分辨的颜色种类可达几十万种以上 Color提供使用RGB值返回颜色的方法 FromArgb() System.Drawing.Col…

LabVIEW开关磁阻电机特性测量系统

基于LabVIEW软件和特定硬件组件的开关磁阻电机(SRM)特性测量系统,结合多功能数据采集卡,统能够准确地测量并分析SRM的电磁特性,从而支持电机模型的精确建立和性能优化。 项目背景 在工业生产和家用电器领域&#xff0…

电子取证新视角:USB键盘流量提取密码方法研究与实现

0x01 引言 在当今数字化时代,USB设备的广泛使用使得信息安全和电子取证领域面临着新的挑战与机遇。特别是USB键盘,作为一种常见的输入设备,其流量中可能包含用户输入的敏感信息,如密码和其他私人数据。因此,研究USB键…

数据治理:制造企业转型的关键要素与战略需求

制造业,作为国民经济的主体,是立国之本、兴国之器、强国之基。从工业文明的曙光初现,到今日全球化的激烈竞争,始终昭示着一个真理:没有强大的制造业,就没有国家和民族的强盛。 为全面推进制造强国建设&…

Qt初识_项目文件解析

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Qt初识_项目文件解析 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. pro文件解析 2.…

跟着深度学习好书实践tensorflow神经网络

前言 2024 年诺贝尔物理学奖授予了约翰霍普菲尔德 (John Hopfield)和图灵奖得主、AI教父杰弗里辛顿(Geoffrey Hinton),"以表彰他们利用人工神经网络进行机器学习的奠基性发现和发明"。 辛顿在接受电话采访…

基于Handsontable.js + Excel.js实现表格预览和导出功能(公式渲染)

本文记录在html中基于Handsontable.js Excel.js实现表格预览功能。 Handsontable官方文档 一、开发前的准备引入相关依赖库 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" co…

openpdf

1、简介 2、示例 2.1 引入依赖 <dependency><groupId>com.github.librepdf</groupId><artifactId>openpdf</artifactId><version>1.3.34</version></dependency><dependency><groupId>com.github.librepdf</…

正点原子STM32F407ZG 开发板简介

1. STM32F407ZG 学习资料 1&#xff09;ST 官方的学习资料 ST 官方资料有两个网址&#xff1a; www.stmcu.org.cn 和 www.st.com 。 www.stmcu.org.cn 是 ST 中文社区&#xff0c;里面的资料全部由 ST 中国区的人负责更新和整理&#xff0c;包含了所有 ST 公司的 …

计算机的错误计算(一百二十)

摘要 探讨在许多应用中出现的函数 的计算精度问题。 例1. 考虑在许多应用中出现的函数 计算 不妨在Python下计算&#xff1a; 若用下列Rust代码在线计算&#xff1a; fn f(x: f64) -> f64 {(x.exp() - 1.0) / x }fn main() {let result f(0.9e-13);println!("…

微知-Bluefield DPU命名规则各字段作用?BF2 BF3全系列命名大全

文章目录 背景字段命名C是bmc的意思NOT的N是是否加密S表示不加密但是secureboot enable倒数第四个都是E倒数第五个是速率 V和H是200GM表示E serials&#xff0c;H表示P serials&#xff08;区别参考兄弟篇&#xff1a;[more](https://blog.csdn.net/essencelite/article/detail…

【通信协议讲解】单片机基础重点通信协议解析与总结(IIC,CAN,MODBUS...)

目录 一.IIC总线 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 二.SPI总线 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 三.串口通信 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 四.CAN总线 基础特性…

vue后台管理系统从0到1(5)

文章目录 vue后台管理系统从0到1&#xff08;5&#xff09;完善侧边栏修改bug渲染header导航栏 vue后台管理系统从0到1&#xff08;5&#xff09; 接上一期&#xff0c;我们需要完善我们的侧边狼 完善侧边栏 我们在 element 组件中可以看见&#xff0c;这一个侧边栏是符合我们…

I/O进程(Day26)

一、学习内容 I/O进程 标准IO 概念 针对文件的读写操作 文件IO最终达成的目的&#xff1a;将一个临时存在于内存中的数据&#xff0c;永久性的存放于磁盘当中 操作 文件IO的操作&#xff0c;需要这样的2个指针 一个指针&#xff1a;指向源数据&#xff0c;提供读取操作的指针 …

复杂系统学习

一、复杂网络分析在复杂性研究中的地位 1.复杂系统 系统中存在的复杂度从两个维度来看 ①系统自由度&#xff08;系统组成成分的数目&#xff09; ②相互作用&#xff08;线性到非线性的转换&#xff09; 复杂网络是复杂系统的骨架 复杂系统可以抽象成一个网络&#xff0…