PyTorch中常用的工具(3)TensorBoard

文章目录

  • 前言
  • 3 可视化工具
    • 3.1 TensorBoard

前言

在训练神经网络的过程中需要用到很多的工具,最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块,合理使用这些工具可以极大地提高编程效率。

由于内容较多,本文分成了五篇文章(1)数据处理(2)预训练模型(3)TensorBoard(4)Visdom(5)CUDA与小结。

整体结构如下:

  • 1 数据处理
    • 1.1 Dataset
    • 1.2 DataLoader
  • 2 预训练模型
  • 3 可视化工具
  • 3.1 TensorBoard
  • 3.2 Visdom
  • 4 使用GPU加速:CUDA
  • 5 小结

全文链接:

  1. PyTorch中常用的工具(1)数据处理
  2. PyTorch常用工具(2)预训练模型
  3. PyTorch中常用的工具(3)TensorBoard
  4. PyTorch中常用的工具(4)Visdom
  5. PyTorch中常用的工具(5)使用GPU加速:CUDA

3 可视化工具

在训练神经网络时,通常希望能够更加直观地了解训练情况,例如损失函数曲线、输入图片、输出图片等信息。这些信息可以帮助读者更好地监督网络的训练过程,并为参数优化提供方向和依据。最简单的办法就是打印输出,这种方式只能打印数值信息,不够直观,同时无法查看分布、图片、声音等。本节介绍两个深度学习中常用的可视化工具:TensorBoard和Visdom。

3.1 TensorBoard

最初,TensorBoard是作为TensorFlow的可视化工具迅速流行开来的。作为和TensorFlow深度集成的工具,TensorBoard能够展示TensorFlow的网络计算图,绘制图像生成的定量指标图以及附加数据。同时,TensorBoard是一个相对独立的工具,只要用户保存的数据遵循相应的格式,TensorBoard就能读取这些数据,进行可视化。

在PyTorch 1.1.0版本之后,PyTorch已经内置了TensorBoard的相关接口,用户在手动安装TensorBoard后便可调用相关接口进行数据的可视化,TensorBoard的主界面如下图所示。

![使用add_scalar记录标量]](https://img-blog.csdnimg.cn/direct/864745746f6244e080a0793ae578e5a1.png#pic_center)

TensorBoard的使用非常简单,首先使用以下命令安装TensorBoard:

pip install tensorboard

待安装完成后,通过以下命令启动TensorBoard,其中path为log文件的保存路径:

tensorboard --logdir=path

TensorBoard的常见操作包括记录标量、显示图像、显示直方图、显示网络结构、可视化embedding等,下面逐一举例说明:

In: import torchimport torch.nn as nnimport numpy as npfrom torchvision import modelsfrom torch.utils.tensorboard import SummaryWriterfrom torchvision import datasets,transformsfrom torch.utils.data import DataLoader# 构建logger对象,log_dir用来指定log文件的保存路径logger = SummaryWriter(log_dir='runs')
In: # 使用add_scalar记录标量for n_iter in range(100):logger.add_scalar('Loss/train', np.random.random(), n_iter)logger.add_scalar('Loss/test', np.random.random(), n_iter)logger.add_scalar('Acc/train', np.random.random(), n_iter)logger.add_scalar('Acc/test', np.random.random(), n_iter)

使用add_image显示图像

In: transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,),(0.5,))])dataset = datasets.MNIST('data/', download=True, train=False, transform=transform)dataloader = DataLoader(dataset, shuffle=True, batch_size=16)images, labels = next(iter(dataloader))grid = torchvision.utils.make_grid(images)
In: # 使用add_image显示图像logger.add_image('images', grid, 0)

使用add_graph可视化网络

In: # 使用add_graph可视化网络class ToyModel(nn.Module):def __init__(self, input_size=28, hidden_size=500, num_classes=10):super().__init__()self.fc1 = nn.Linear(input_size, hidden_size) self.relu = nn.ReLU()self.fc2 = nn.Linear(hidden_size, num_classes)  def forward(self, x):out = self.fc1(x)out = self.relu(out)out = self.fc2(out)return outmodel = ToyModel()logger.add_graph(model, images)

使用add_histogram显示直方图

In: # 使用add_histogram显示直方图logger.add_histogram('normal', np.random.normal(0,5,1000), global_step=1)logger.add_histogram('normal', np.random.normal(1,2,1000), global_step=10)

使用add_embedding可视化embedding

In: # 使用add_embedding进行embedding可视化dataset = datasets.MNIST('data/', download=True, train=False)images = dataset.data[:100].float()label = dataset.targets[:100]features = images.view(100, 784)logger.add_embedding(features, metadata=label, label_img=images.unsqueeze(1))

打开浏览器输入http://localhost:6006(其中,6006应改成读者TensorBoard所绑定的端口),就可以看到本文之前的可视化结果。

TensorBoard十分容易上手,读者可以根据个人需求灵活地使用上述函数进行可视化。本节介绍了TensorBoard的常见操作,更多详细内容读者可参考官方相关源码。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDS诊断(ISO14229-1) 3E服务

文章目录 功能简介应用场景非3E服务报文能维持非默认会话吗诊断仪发送了一帧 $3E报文后,又发送其他诊断请求会刷新 S3 Client 计数器吗请求和响应1、请求2、子功能3、肯定响应4、否定响应 报文示例UDS中常用 NRC 功能简介 3E服务,即 TesterPresent&…

CSDN质量分查询

查看了2023博客之星TOP 20 榜单公布 才知道有质量评分,可是内容管理有没有质量分数,也可能是我没找到。建议开发者可以在内容管理的每个文章处加一个文章质量分数,帮助创作者改进文章质量 CSDN质量分查询https://www.csdn.net/qc 也欢迎各…

热烈欢迎马来西亚客户来我司进行技术交流-安科瑞 蒋静

2023年12月5日下午3点,马来西来客户总包公司LAU KIAN HUA先生同他们的技术顾问Yayan Yogo Santoso到安科瑞考察参观展厅和智能化生产车间并进行技术交流。12月5日下午刚到就马不停蹄地参观了我们的展厅和生产车间。 在仪表生产车间里,公司负责人沈原谅沈…

pendulum,一个超酷的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个超酷的 Python 库 - pendulum。 Github地址:https://github.com/sdispater/pendulum 日期和时间处理在许多应用程序中都是常见的任务,然而,Python标准库中的…

LAYABOX:2024新年寄语

2024新年寄语 过去的一年,尽管许多行业面临严峻挑战和发展压力,小游戏领域却逆势上扬,年产值首次突破400亿元大关,众多优质小游戏企业收获颇丰。 对此,祝福大家,2024一定更好! 过去的一年&#…

Windows CPU部署llama2量化模型并实现API接口

目录 模型部署本地运行llama2使用fastapi实现API接口常用git仓库 模型部署 从huggingface下载模型 https://huggingface.co/ 放在本地文件夹,如下 本地运行llama2 from ctransformers import AutoModelForCausalLMllm AutoModelForCausalLM.from_pretrained(&q…

C语言之scanf浅析

前言&#xff1a; 当有了变量&#xff0c;我们需要给变量输入值就可以使用scanf函数&#xff0c;如果需要将变量的值输出在屏幕上的时候可以使用printf函数&#xff0c;如&#xff1a; #include <stdio.h> int main() {int score 0;printf("请输⼊成绩:");sc…

YOLOv8训练损失、mAP画图功能 | 支持多结果对比,多结果绘在一个图片(科研必备)

一、本文介绍 本文给大家带来的是YOLOv8系列的绘图功能&#xff0c;我将向大家介绍YOLO系列的绘图功能。我们在进行实验时&#xff0c;经常需要比较多个结果&#xff0c;针对这一问题&#xff0c;我写了点代码来解决这个问题&#xff0c;它可以根据训练结果绘制损失(loss)和mA…

Docker support for NVIDIA GPU Accelerated Computing on WSL 2

Docker support for NVIDIA GPU Accelerated Computing on WSL 2 0. 背景1. 安装 Docker Desktop2. 配置 Docker Desktop3. WLS Ubuntu 配置4. 安装 Docker-ce5. 安装 NVIDIA Container Toolkit6. 配置 Docker7. 运行一个 Sample Workload 0. 背景 今天尝试一下 NVIDIA GPU 在…

启封涂料行业ERP需求分析和方案分享

涂料制造业是一个庞大而繁荣的行业 它广泛用于建筑、汽车、电子、基础设施和消费品。涂料行业生产不同的涂料&#xff0c;如装饰涂料、工业涂料、汽车涂料和防护涂料。除此之外&#xff0c;对涂料出口的需求不断增长&#xff0c;这增加了增长和扩张的机会。近年来&#xff0c;…

微信小程序-API

微信小程序第三章 文章目录 微信小程序第三章3. API3.1 分类3.2 常用 API 的使用方法3.2.1 小程序生命周期3.2.1.1 onLaunch3.2.1.2 onShow3.2.1.3 onHide3.2.1.4 onError 3.2.2 路由3.2.2.1 wx.navigateTo3.2.2.2 wx.redirectTo3.2.2.3 wx.reLaunch3.2.2.4 wx.switchTab 3.2.3…

polar CTF WEB-veryphp

1、题目 <?php error_reporting(0); highlight_file(__FILE__); include("config.php"); class qwq {function __wakeup(){die("Access Denied!");}static function oao(){show_source("config.php");} } $str file_get_contents("ph…