当前位置: 首页 > news >正文

深度学习 Pytorch 建模可视化工具TensorBoard的安装与使用

50 TensorBoard的安装和使用

在深度学习建模过程中,为了能够快速绘制模型基本结构、观察模型评估指标伴随训练过程的动态变化情况,当然也为了能够观察图像数据,我们可以使用TensorBoard工具来进行Pytorch深度学习模型的可视化展示。

Tensorboard原本是TensorFlow的可视化工具,而目前在TensorboardX工具的加持下,其他深度学习计算框架也可使用TensorBoard工具进行可视化操作了。在Pytorch原生的可视化工具不够友好的情况下,我们更推荐使用TensorboardX来实现Pytorch的建模可视化。

在这里插入图片描述

虽然我们可以在torch.util模块中调用Tensorboard,但Tensorboard并不和Pytorch同步维护,要使用Tensorboard,需单独安装。

# 随机模块
import random# 绘图模块
import matplotlib as mpl
import matplotlib.pyplot as plt# numpy
import numpy as np# pytorch
import torch
from torch import nn,optim
import torch.nn.functional as F
from torch.utils.data import Dataset,TensorDataset,DataLoader

50.1 安装TensorboardX

python安装第三方库一样,直接在命令行中安装即可。已经安装了TensorFlow的同学,在安装TensorFlow的过程中会自动安装Tensorboard,后续可以直接使用。当然,只安装了PyTorch的同学可根据以下步骤单独TensorboardX组件:

  • Step 1.打开cmd命令行

  • Step 2.使用pip进行安装

pip install tensorboardX

在这里插入图片描述

  • Step 3.安装tensorboard
pip install tensorboard

在这里插入图片描述

  • Step 4.测试安装结果

导入相关的包,若能顺利导入,则证明安装成功

from torch.utils.tensorboard import SummaryWriter

在这里插入图片描述


50.2 SummaryWriter类与Tensorboard的基本使用

在进行建模过程可视化展示的过程,核心使用的类就是SummaryWriter类,通过该类的使用,我们可以记录关键运算关系、模型数值指标等,进而可以进行展示。

不过,考虑到真实生产环境中,大规模深度学习模型都是部署在服务器上运行的,我们无法像在本地IDE上一边输入数据一边绘图观测结果,我们只能将需要记录的关键结果记录下来并保存在某个文件里,然后再在本地或者服务器上开启某项服务读取该文件保存的信息。因此,整个过程会比在本地绘图稍微复杂,但确是真实生产环境中的主流操作。
使用SummaryWriter进行记录并读取结果的一般过程如下:


实例化summarywriter

writer = SummaryWriter(log_dir = 'test')

实例化的过程中需要确定保存路径,当保存在主目录文件内时,只需输入文件夹名称即可。当文件夹不存在时,系统会自动创建一个。每次实例化一次SummaryWriter,就会在对应文件夹内新生成一个文件。单个文件夹内允许存在多个文件,在实际读取过程中会一次性读取文件夹内全部文件。

在这里插入图片描述

writer.log_dir	# 通过log_dir查看summary对象记录文件的位置
# output :
'test'

记录数据

for i in range(10):writer.add_scalar('mul', i*i, i)

此处我们使用了add_scalar方法进行数据记录,该方法用于记录一组组标量,在实际记录过程中,通过迭代的方式逐个增加。其中,第一个参数代表改组记录的名称(也就是生成图像的名称),第二个参数代表y值,第三个参数代表x值。完成记录后,即可读取文件查看记录结果。除此以外,常用的还有add_graph方法用于记录深度学习建模流程。

在这里插入图片描述


启动服务读取文件

接下来,在本地启动服务,读取刚刚生成的记录文件。同样,我们可以在jupyter中的命令行直接启动服务。

  1. 打开终端

    在这里插入图片描述

  2. 输入

    tensorboard --logdir="test"
    

    命令行中内容,其中tensorboard为指令关键词,--logdir参数输入记录文件夹地址(注意是文件夹地址而不是文件夹内的文件地址)。在默认情况下,系统会自动启动6006端口,可用于Web调用服务,这种调用方法类似于jupyter服务也是通过Web调用的,jupyter端口默认是8888。需要注意的是,上述命令中,是先将当前操作目录转移至test文件目录下,然后在调用tensorboard命令时只需要在--logdir参数位输入文件名称即可。无论是在--logdir参数位输入完整的文件路径,还是先将当前操作目录转移到对应目录下再直接输入文件名,都可以直接调用服务。

  3. 进入6006端口页面

    在这里插入图片描述

    直接点击也可以

    在这里插入图片描述

    接下来即可对图形进行简单操作,最基本的,我们可以按住alt键,滚动鼠标滚轮对其进行缩放,以及通过鼠标左键对其进行拖拽。

至此,简单的跑通一个使用Tensorboard的使用实验顺利完成,在后续的建模过程中,我们还将进一步熟悉Tensorboard的其他功能。值得一提的是,尽管目前看起来是Tensorboard只记录了一张折线图,但实际上add_scalar方法核心应用场景是用于记录模型运行过程中,随着迭代次数增加一些数值指标的变化情况,如loss值、准确率值等等等等。无论如何,我们需要知道,Tensorboard的核心应用场景是深度学习建模过程的可视化展示,若只用其进行绘图,则有些大材小用了。

相关文章:

深度学习 Pytorch 建模可视化工具TensorBoard的安装与使用

50 TensorBoard的安装和使用 在深度学习建模过程中,为了能够快速绘制模型基本结构、观察模型评估指标伴随训练过程的动态变化情况,当然也为了能够观察图像数据,我们可以使用TensorBoard工具来进行Pytorch深度学习模型的可视化展示。 Tensor…...

【免费】2007-2019年各省科技支出占一般公共预算支出的比重数据

2007-2019年各省科技支出占一般公共预算支出的比重数据 1、时间:2007-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、科技支出占一般公共预算支出的比重 4、范围:31省 5、指标解释&#xff1a…...

19爬虫:使用playwright登录超级鹰

本次案例一共解决了如下两个问题: (1)如何使用playwright截图,特别是验证码图片 (2)在playwright中如何判断一个元素可见 1.截图 我们首先解决第一个问题,截图。如果前期接触过selenium的小伙…...

[转]Java面试近一个月的面试总结

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46753275 前言 打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为…...

Spring Boot中使用MockMvc测试PATCH请求控制器

在Spring Boot项目中,对控制器进行单元测试是确保代码质量和功能正确性的重要环节。本文将通过一个具体的例子,展示如何使用Spring的MockMvc框架来测试处理PATCH请求的控制器。 示例项目结构 假设我们有一个简单的Spring Boot项目,其中包含一…...

html转PDF文件最完美的方案(wkhtmltopdf)

目录 需求 一、方案调研 二、wkhtmltopdf使用 如何使用 文档简要说明 三、后端服务 四、前端服务 往期回顾 需求 最近在做报表类的统计项目,其中有很多指标需要汇总,网页内容有大量的echart图表,做成一个网页去浏览,同时…...

ip地址是手机号地址还是手机地址

在数字化生活的浪潮中,IP地址、手机号和手机地址这三个概念如影随形,它们各自承载着网络世界的独特功能,却又因名称和功能的相似性而时常被混淆。尤其是“IP地址”这一术语,经常被错误地与手机号地址或手机地址划上等号。本文旨在…...

【大数据技术】搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn)

搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) jdk-8u361-linux-x64.tarhadoop-3.3.6.tar.gz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Hadoop+MapReduce+Yarn的详细步骤。 注意: 统一约定将软件安装包存放…...

从零开始:OpenCV 图像处理快速入门教程

文章大纲 第1章 OpenCV 概述 1.1 OpenCV的模块与功能  1.2 OpenCV的发展 1.3 OpenCV的应用 第2章 基本数据类型 2.1 cv::Vec类 2.2 cv::Point类 2.3 cv::Rng类 2.4 cv::Size类 2.5 cv:&…...

springboot简单应用

快速开发Springboot项目实现简单的增删改查,前期需要准备:idea与postman安装 Maven,MySQL(8),JDK(21) 目录 前言 springboot 使用3.0版本,JDK使用21,MySQL使用8版本 开发环境IDEA使用2024版本 …...

【DeepSeek】DeepSeek小模型蒸馏与本地部署深度解析DeepSeek小模型蒸馏与本地部署深度解析

一、引言与背景 在人工智能领域,大型语言模型(LLM)如DeepSeek以其卓越的自然语言理解和生成能力,推动了众多应用场景的发展。然而,大型模型的高昂计算和存储成本,以及潜在的数据隐私风险,限制了…...

C#项目引用VB.NET 类库项目,生成一个EXE,这是什么原理

C#项目引用VB.NET 类库项目,生成一个EXE,这是什么原理 在C#项目中引用VB.NET类库项目并生成一个EXE文件,主要基于.NET框架的通用性以及编译原理。以下是详细的原理分析: 1. .NET框架的通用性 公共语言运行时(CLR&…...

qt使用MQTT协议连接阿里云demo

qt使用Mqtt协议连接阿里云。 在配置好qt关于MQTT的环境之后,主要就是根据MQTT的连接参数进行连接即可。 环境配置推荐链接QT编译并部署QtMqtt相关环境跑测demo【超详细教程】_mqtt qt开发教程-CSDN博客 连接核心代码,主要就是根据阿里云的MQTT相关参数进行配置实现连…...

HTML中的图片标签详解及路径使用【学术投稿-第五届环境资源与能源工程国际学术会议(ICEREE 2025)】

官网:www.iceree.org 会议时间:2025年2月21-23日 会议地点:中国-昆明 简介 第五届环境资源与能源工程国际学术会议(ICEREE 2025)将于2025年2月21日至23日在中国昆明隆重举行。主要围绕“能源工程和能源技术”、“环…...

【低功耗 Power 学习专栏 -- Power domian 和 power rail】

文章目录 power rail(followpin) 和 Power domain1. Power Domain2. Power Rail3. Followpin4. Power Stripe5. IR Drop芯片中电源管理设计 举例 power rail(followpin) 和 Power domain followpin 指两部分,一个就是 STD cell 上下的 VDD, VSS。同时,f…...

PythonStyle MVC 开发框架

在 Python 中,MVC(Model - View - Controller,模型 - 视图 - 控制器)是一种常见的软件设计模式,它将应用程序分为三个主要部分,各自承担不同的职责,以提高代码的可维护性、可扩展性和可测试性。…...

RTOS基础(TODO)

(TODO) 读完FreeRTOS内核源码,需要多久? 有哪些情况下是RTOS满足不了需求,必须得上嵌入式Linux系统的? 如何用树莓派 Pico 学习 RTOS? 树莓派 Pico 使用 RP2040 微控制器,基于 AR…...

八、Spring Boot 日志详解

目录 一、日志的用途 二、日志使用 2.1 打印日志 2.1.1 在程序中获取日志对象 2.1.2 使用日志对象打印日志 2.2、日志框架介绍 2.2.1 门面模式(外观模式) 2.2.2 门面模式的实现 2.2.3 SLF4J 框架介绍 2.3 日志格式的说明 2.4 日志级别 2.4.1 日志级别的分类 2.4.2…...

Java实战经验分享

1. 项目优化与性能提升 面试问题: 聊聊你印象最深刻的项目,或者做了哪些优化 你在项目中如何解决缓存穿透问题? 缓存穿透是我们做缓存优化时最常遇到的问题,特别是当查询的对象在数据库中不存在时,缓存层和数据库都会…...

前端控制器模式

前端控制器模式 概述 前端控制器模式(Front Controller Pattern)是一种设计模式,它将应用程序中的所有用户请求统一交由一个控制器处理。这种模式在MVC(Model-View-Controller)架构中尤为常见,它能够简化…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

windows系统MySQL安装文档

概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...

leetcode_69.x的平方根

题目如下 &#xff1a; 看到题 &#xff0c;我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历&#xff0c;我们是整数的平方根&#xff0c;所以我们分两…...

CppCon 2015 学习:REFLECTION TECHNIQUES IN C++

关于 Reflection&#xff08;反射&#xff09; 这个概念&#xff0c;总结一下&#xff1a; Reflection&#xff08;反射&#xff09;是什么&#xff1f; 反射是对类型的自我检查能力&#xff08;Introspection&#xff09; 可以查看类的成员变量、成员函数等信息。反射允许枚…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解

文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...

当下AI智能硬件方案浅谈

背景&#xff1a; 现在大模型出来以后&#xff0c;打破了常规的机械式的对话&#xff0c;人机对话变得更聪明一点。 对话用到的技术主要是实时音视频&#xff0c;简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术&#xff0c;开发自己的大模型。商用方案多见为字节、百…...