TensorBoard快速入门(Pytorch使用TensorBoard)

news2024/11/26 2:51:13

文章目录

  • TensorBoard 简介
  • TensorBoard 界面介绍
  • TensorBoard 安装
  • TensorBoard 运行
  • Pytorch 使用 TensorBoard
  • Google Colab中使用 Tensorboard
  • Tensor折线图(Scalars)

TensorBoard 简介

TensorBoard 是Google开发的一个机器学习可视化工具。其主要用于记录机器学习过程,例如:

  • 记录损失变化、准确率变化
  • 记录图片变化、语音变化、文本变化等,例如在做GAN时,可以过一段时间记录一张生成的图片
  • 绘制模型

具体支持的内容可以参考官方文档


TensorBoard 界面介绍

在这里插入图片描述


TensorBoard 安装

直接使用pip安装即可:

pip install tensorboard

安装后,在命令行输入:

tensorboard --help

若可以正常输出,则说明安装成功。


TensorBoard 运行

运行启动命令即可:

tensorboard --logdir my_log

my_log是TensorBoard的log文件所在的目录。Tensorboard面板中展示的数据都来源于log文件,一般一次完整的运行生成一份log文件

例如,在Pytorch中,我们会调用new一个SummaryWriter对象,此时就会创建一个log文件,之后我们就会调用其add_something方法,往log里面写日志,之后在TensorBoard面板中就可以看到数据了。最后在训练完成后,调用close方法结束。

若看到了如下输出,说明启动成功:

TensorBoard 2.8.0 at http://localhost:6006/ (Press CTRL+C to quit)

此时只需要在浏览器中输入http://localhost:6006/即可进入TensorBoard界面。


Pytorch 使用 TensorBoard

Pytorch使用Tensorboard主要用到了三个API:

  • SummaryWriter:这个用来创建一个log文件,TensorBoard面板查看时,也是需要选择查看那个log文件。
  • add_something: 向log文件里面增添数据。例如可以通过add_scalar增添折线图数据,add_image可以增添图片。
  • close:当训练结束后,我们可以通过close方法结束log写入。

接下来,我们来模拟记录训练过程中准确率的变化。

首先需要new一个SummaryWriter对象:

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter(log_dir='runs/mock_accuracy')

当运行完该行代码后,可以看到当前目录下生成了一个runs/mock_accuracy文件夹,并且里面有event日志
在这里插入图片描述

此时已经可以启动tensorboard来查看了:

tensorboard --logdir runs

此时进入tensorboard页面后,啥都看不到,因为我们还没有向log里面写入任何数据:

在这里插入图片描述

接下来使用 add_scalar 绘制准确率折线图:

for i in range(100):
    writer.add_scalar(tag="accuracy", # 可以暂时理解为图像的名字
                      scalar_value=i * random.uniform(0.8, 1),  # 纵坐标的值
                      global_step=i  # 当前是第几次迭代,可以理解为横坐标的值
                      )
    time.sleep(2 * random.uniform(0.5, 1.5))

这里模拟 1~3 秒完成一次迭代并计算准确率,然后将准确率增添到 accuracy 这个图下面。

过一会后,我们刷新页面,就可以看到我们的准确率变化曲线了:

在这里插入图片描述

由于数据还在写入,所以曲线还在不断变化。

如何和将多个曲线绘制在一张图中? 答:使用writer.add_scalars即可

如何将多个图像放在一个tag下?答:在指定tag时,使用同一个父tag,然后使用/分割即可。例如:tag=record/avg_loss, tag=record/total_loss


Google Colab中使用 Tensorboard

在Google Colab中使用Tensorboard只需要两行命令:

%load_ext tensorboard # 加载tensorboard扩展插件
%tensorboard --logdir=runs  # 运行tensorboard

在运行完tensorboard后,在该单元格下面就会出现tensorboard页面:

在这里插入图片描述
之后就和之前一样使用writer写入数据即可,然后手动点击在这里插入图片描述按钮即可,或者使用在这里插入图片描述按钮开启自动刷新。

在这里插入图片描述

在Google Colab中不像本地那样刷新那么快,即使手动点刷新按钮也不行,我自己测试下来,大概1分钟才能真正更新一次数据。


Tensor折线图(Scalars)

在这里插入图片描述

  • TODO:其他图形的介绍

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

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

相关文章

【1】如何安装和卸载tensorflow-CPU和GPU各版本-简单清晰版

文章目录 前言一、tensorflow-cpu指定版本的卸载二、tensorflow-gpu指定版本的卸载三、tensorflow-cpu指定版本的安装1、创建虚拟环境2、激活虚拟环境3、安装指定版本的tensorflow 四、tensorflow-gpu指定版本的安装安装CUDA安装cuDNN安装tensorflow_gpu-2.1.0测试tensorflow安…

SparkSQL优化

执行计划 查看执行计划 explain():只展示物理执行计划。(使用较多)explain(mode"simple"):只展示物理执行计划。explain(mode“extended”):展示物理执行计划和逻辑执行计划。explain(mode"codegen&q…

【数据结构与算法】线性表 01 链表

一、线性表1.1 概念与特点1.2 线性表的存储结构1.3 常见操作1.4 应用场景 二、链表2.1 链表简介2.2 单向链表(单链表)2.21 基本概念2.22 单链表基本操作2.23 C语言实现 2.3 双向链表2.4 循环链表 一、线性表 线性表是一种最基本、最简单的数据结构&…

Windows下安装及使用pip

首先查看Windows系统下是否安装有pip。终端执行下面命令: pip list # 查看Python中安装了哪些第三方库如果出现 ModuleNotFoundError: No module named ‘pip‘ 则说明系统里未安装成功pip。 那么可以先把pip安装上。安装pip可以选择 在线安装 或者 离线安装 两…

网络配置心得-从switch网络加速出发

背景: 在PC上玩战地5饱受外挂毒打,早想接触主机游戏又没有机会。最近突然有个好机遇带我入坑switch,那肯定得赶紧体验一下啊~~ 被安利的游戏是斯普拉遁3(splatoon3),是一款switch独占的第三人称射击游戏&a…

chatgpt赋能python:Python将yyyymmdd转换成yyyy-mm-dd的方法

Python将yyyymmdd转换成yyyy-mm-dd的方法 Python语言不仅易于学习,而且是一种功能强大的语言,广泛应用于数据分析、人工智能和Web开发等领域。在实际开发过程中,我们经常遇到需要将日期格式转换为其他格式的需求。本文将介绍如何使用Python将…

抖音账号矩阵系统|源码|开源代码独立部署难度

抖音账号矩阵系统,短视频账号矩阵系统源码, 短视频矩阵是一种常见的视频编码标准,它通过将视频分成多个小块并对每个小块进行压缩来实现高效的视频传输。在本文中,我们将介绍短视频矩阵的原理和实现,并提供示例代码。 …

谈谈IPv6

最近,在B站看到一个讲解IPv6背景的视频比较热门,而评论区则对IPv6技术有许多误解,这也反映出大家或许对这一新的协议不够了解,本文就谈谈我们生活中的IPv6。 另:前述的B站视频地址电子监听、全国断网,棱镜…

Spring Boot 监听器详解

Spring Boot 3.x系列文章 Spring Boot 2.7.8 中文参考指南(一)Spring Boot 2.7.8 中文参考指南(二)-WebSpring Boot 源码阅读初始化环境搭建Spring Boot 框架整体启动流程详解Spring Boot 系统初始化器详解Spring Boot 监听器详解 监听器的介绍 通过前面的几篇文章&#xff0c…

基于三种机器学习模型的岩爆类型预测及Python实现

写在前面 由于代码较多,本文仅展示部分关键代码,需要代码文件和数据可以留言 然而,由于当时注释不及时,且时间久远,有些细节笔者也记不清了,代码仅供参考 0 引言 岩爆是深部岩土工程施工过程中常见的一种地…

GitHub创建新的项目

想把最近自己做的一些东西整理一下上传到网上进行保存,然后就想到了Github,结果发现自己不会上传,所以去BiliBili大学学习了一下,一下内容主要参考《【程序员一定要掌握的技巧】使用Git上传本地代码到GitHub教程》。 使用Git上传本…

Win10每次开机鼠标桌面右键都会显示撤销删除解决方法

Win10每次开机鼠标桌面右键都会显示撤销删除解决方法分享。有用户电脑开机的时候,就会自动弹出撤销删除的窗口了。那么这个问题是怎么回事呢?接下来我们就一起来看看以下的详细操作方法教学吧。 情况一: 如果是联想,在联想管家把联…

Android 中的 NDK 到底是什么?(详细解析+案例实战)

NDK 提供了一系列的工具,帮助开发者快速开发 C (或 C )的动态库,并能自动将 so 和 java 应用一起打包成 apk;这些工具对开发者的帮助是巨大的 什么是 NDK ? Android 原生开发包 NDK(Native Delopment kits )将用于 Android 平台上…

Vue中process.env关键字,process.env.VUE_APP_BASE_API

1.process.env 是Node.js 中的一个环境 打开命令行查看环境: 2.process.env与Vue CLI 项目 Vue Cli 有以下三种运行模式 development 模式用于 vue-cli-service serve test 模式用于 vue-cli-service test:unit production 模式用于 vue-cli-service build 和 vue-c…

pip安装教程 python(针对于Windows系统)

1.什么是pip pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。 目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。 pip 官网:https://pypi.org/project/pip/ 2.判断本机是否安装p…

chatgpt赋能python:Python中如何将NaN变为0

Python中如何将NaN变为0 Python是一种动态、强类型的编程语言,因其简单易学、功能强大,被广泛应用于各种领域。其中NumPy和Pandas是数据科学界最常用的Python库,而在数据处理中,处理缺失值通常是必不可少的。本文将介绍如何使用P…

学成在线----day3

1、JSR303校验 对填入的数据自动做一些约束 package com.xuecheng.content.model.dto;import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data;import javax.validation.constraints.NotEmpty; import javax.validati…

PyCharm安装教程(2023年,3月)

下载PyCharm之前需要准备下载Python 链接:Python安装教程 一、PyCharm下载 1、进入JetBrains官网: 官网地址:https://www.jetbrains.com/ 2、点击【Developer Tools】 开发者工具,选择【PyCharm】点击跳转到PyCharm界面。点击…

【Docker】 7.Docker Internet

文章目录 Docker InternetDocker Internet CommandDocker Bridge Internetdocker Host InternetDocker Container InternetDocker None Internet Docker Internet Docker 网络架构采用的设计规范是CNM(Container Network Model)。CNM中规定了Docker网络…

RK3588平台开发系列讲解(同步与互斥篇)自旋锁死锁实验

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、自旋锁死锁二、实验程序的编写2.1、驱动程序编写2.2、编写测试 APP沉淀、分享、成长,让自己和他人都能有所收获!😄 📢自旋锁若是使用不当就会产生死锁,在本篇将会对自旋锁的特殊情况-死锁进行讲解。 一、自…