当前位置: 首页 > 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)架构中尤为常见,它能够简化…...

Hunyuan-MT-7B保姆级教程:Pixel Language Portal在树莓派5上的轻量级翻译终端部署

Hunyuan-MT-7B保姆级教程:Pixel Language Portal在树莓派5上的轻量级翻译终端部署 1. 项目介绍与核心价值 Pixel Language Portal(像素语言跨维传送门)是一款基于Tencent Hunyuan-MT-7B大语言模型的创新翻译工具。与传统翻译软件不同&#…...

【AI+实战】零基础部署私人ChatGPT网站:从NextChat到功能定制

1. 为什么你需要一个私人ChatGPT网站? 最近两年AI对话机器人的火爆程度,相信大家都有目共睹。但你是否遇到过这些问题:公共平台经常排队、担心隐私泄露、或者想要定制专属功能?这就是为什么越来越多的个人和小团队开始搭建自己的C…...

双轴光伏智能跟踪系统,怎么让光伏发电效率提上来的?

做光伏相关开发和落地的朋友,应该都绕不开一个核心痛点:传统固定式光伏的光能利用率,一直有明显的天花板。今天就用通俗的方式,拆解WZ HELIO这套双轴智能跟踪系统,看看它是怎么解决这个行业老问题的。先搞懂核心逻辑&a…...

手把手教你用AI超分镜像:低清图片3倍放大,细节修复超简单

手把手教你用AI超分镜像:低清图片3倍放大,细节修复超简单 1. 为什么你需要这个AI超分工具? 你是不是也遇到过这些头疼的情况? 翻出十几年前的老照片,想打印出来,却发现画面模糊得像蒙了一层雾。从网上下…...

DeerFlow2.0 Docker + 本地 Ollama qwen3.5:9b 部署指南

DeerFlow2.0 Docker 本地 Ollama qwen3.5:9b 部署指南 实现 Token 自由!!!本地模型免费 :) 1. 前提条件 Windows 11 家庭版(版本号 25H2)Docker Desktop 已安装并运行WSL2 已安装并配置Olla…...

【仅限JDK 25 Early Access用户】:隐藏API `LinkerOptions` 强制启用向量化调用的2行代码,实测吞吐提升2.8倍

第一章:Java 25 外部函数接口优化案例Java 25 正式将外部函数与内存 API(Foreign Function & Memory API)从预览特性转为正式特性,显著提升了 JVM 与本地代码交互的安全性、性能与开发体验。相比早期 JNI 方案,FFM…...

从ULN2803芯片内部拆解,聊聊三极管“黄金搭档”达林顿管到底强在哪?

ULN2803芯片拆解:达林顿管如何成为三极管的“黄金搭档”? 当我们需要用单片机的微弱IO口信号(通常只有几毫安)驱动继电器、电机这类“大胃王”负载时,就像试图用一根吸管给游泳池注水——理论可行,实际效率…...

intv_ai_mk11效果惊艳案例:为初创公司1小时生成完整BP商业计划书框架

intv_ai_mk11效果惊艳案例:为初创公司1小时生成完整BP商业计划书框架 1. 商业计划书生成效果展示 1.1 从零到完整的商业计划书 intv_ai_mk11在商业计划书生成方面展现出惊人的效率和质量。我们实测了一个真实案例:一家智能硬件初创公司需要准备融资用…...

从安装到第一个程序:VS2022社区版+C语言开发极简入门(含代码模板)

从安装到第一个程序:VS2022社区版C语言开发极简入门 在数字化浪潮席卷各行各业的今天,编程能力已成为继外语之后的又一基础技能。对于非计算机专业背景的学习者而言,选择合适的学习路径尤为重要。Visual Studio 2022社区版作为微软官方提供的…...

Venera漫画阅读器:跨平台智能阅读的终极指南

Venera漫画阅读器:跨平台智能阅读的终极指南 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera 想要在Android、iOS、Windows、macOS和Linux上享受无缝的漫画阅读体验吗?Venera漫画阅读器正是您需要的终极…...