Pytorch学习笔记——Conv2d与Tensorboard的结合使用

文章目录

  • 一、两者介绍及结合后的优势
    • 1、Conv2d简要介绍
    • 2、TensorBoard简要介绍
    • 3、结合后的优势
  • 二、对之前代码进行改造
    • 1、引入相关包
    • 2、加载测试数据
    • 3、创建神经网络
    • 4、将信息写入Tensorboard
  • 三、进行训练,启动Tensorboard


一、两者介绍及结合后的优势

1、Conv2d简要介绍

Conv2d是深度学习框架中用于执行二维卷积操作的函数或类。它接受输入数据(通常是图像)和卷积核作为参数,输出卷积特征图。这些特征图可以进一步用于分类、检测或其他计算机视觉任务。

2、TensorBoard简要介绍

TensorBoard是一个强大的可视化工具,用于展示深度学习模型的各个方面。它可以展示模型的网络结构、参数分布、训练曲线以及图像、音频等媒体数据。通过使用TensorBoard,能够让研究人员和开发者可以更好地理解和调试模型,从而提高模型的性能和效果。

3、结合后的优势

在使用Conv2d进行卷积操作以提取图像特征的同时,利用TensorBoard可视化这些特征以及模型的训练过程,直观地展示包含Conv2d层的神经网络结构,展示训练曲线与指标等。

二、对之前代码进行改造

1、引入相关包

相关代码如下:

import torchvision
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

提示:第二个是导入Conv2d包,第三个导入数据加载包,第四个是导入Tensorboard的依赖包

2、加载测试数据

代码如下:

# 加载测试集数据
dataset = torchvision.datasets.CIFAR10(root="data1",train=False,transform=torchvision.transforms.ToTensor(),download=True)
# 创建加载器对象
dataloader = DataLoader(dataset,batch_size=64)

1、train=False 代表下载测试集数据,为True则下载训练集数据
2、transform=torchvision.transforms.ToTensor()则代表使用ToTensor转换,将PIL.Image或ndarray转换成torch.FloatTensor
3、batch_size=64 意味着每次训练时,模型将处理64个样本

3、创建神经网络

代码如下:

# 定义一个神经网络类NN,继承自nn.Module
class NN(nn.Module):def __init__(self):super(NN, self).__init__()  # 调用父类nn.Module的构造函数# 定义一个二维卷积层,输入通道数为3(对应RGB图像),输出通道数为6,卷积核大小为3x3,步长为1,无填充self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)# 定义前向传播函数def forward(self, x):# 将输入x通过卷积层,并返回输出x = self.conv1(x)return x# 实例化神经网络类NN
mynn = NN()

4、将信息写入Tensorboard

代码如下:

# 创建一个SummaryWriter对象,用于将信息写入TensorBoard
writer = SummaryWriter("conv2d")
# 初始化step变量,用于记录TensorBoard中的步骤
step = 0# 遍历数据加载器中的数据
for data in dataloader:# 解包数据和标签imgs, targets = data# 将图片数据通过神经网络得到输出output = mynn(imgs)# 打印输出数据的形状print(output.shape)  # 应该是类似 [64, 6, 30, 30] 的形状,因为卷积操作会减少空间维度# 使用TensorBoard的add_images函数来可视化输入图像writer.add_images("input_conv", imgs, step)output = torch.reshape(output, (-1, 3, 30, 30))writer.add_images("output_conv", output, step)# 更新step变量step += 1# 关闭SummaryWriter,确保所有数据都被写入TensorBoard
writer.close()

三、进行训练,启动Tensorboard

运行python文件后,运行终端

(pytorch) D:\PycharmProjects\learn_pytorch>tensorboard --logdir="conv2d"

注意:logdir="conv2d"里面的conv2d是创建SummaryWriter对象指定的路径

点击http://localhost:6006/,在浏览器查看

(pytorch) D:\PycharmProjects\learn_pytorch>tensorboard --logdir="conv2d"
TensorFlow installation not found - running with reduced feature set.
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.16.2 at http://localhost:6006/ (Press CTRL+C to quit)

运行结果如下:
运行时的gif1
运行时的gif2

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

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

相关文章

数字人解决方案——ID-Animator可保持角色一致生成视频动画

一、引 言 个性化或自定义生成在图像和视频生成领域是一个不断发展的研究方向,尤其是在创建与特定身份或风格一致的内容方面。您提到的挑战和解决方案为这一领域提供了有价值的见解: 训练成本高:这是一个普遍问题,因为个性化生成…

IT行业现状与未来趋势分析

IT行业现状与未来趋势显示出持续的活力和变革,以下是上大学网(www.sdaxue.com)关于IT行业现状与未来趋势分析,供大家参考。 当前现状: 市场需求持续增长:随着信息时代的深入发展,各行各业对信息…

AI办公自动化:用kimi批量把word转换成txt文本

在Kimichat中输入提示词: 你是一个Python编程专家,要完成一个Python脚本编写的任务,具体步骤如下: 打开文件夹:F:\aword 读取里面docx格式的word文档, 提取word文档中的第一行文字作为txt文本文档的标题…

安装部署达梦数据库DM8

创建用户所在的组,命令如下: groupadd dinstall -g 2001 创建用户,命令如下: useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba 修改用户密码,命令如下: passwd dmdba 修改文件打开…

精准追踪,高效分析——Xinstall应用数据分析平台

在当前的移动互联网时代,App应用的数量与日俱增,如何从这些应用中脱颖而出,成为开发者和广告主们亟待解决的问题。而在这个问题中,数据无疑是一把关键的钥匙。今天,我们要介绍的就是国内专业的App全渠道统计服务商——…

TiDB学习2:TiDB Sever

目录 1. TiDB Server架构 2. sql语句的解析和编译 2.1 Parse ​编辑 2.2 compile 3. 行转化为KV对(聚簇表) ​编辑4. SQL 读写相关模块 4.1 DistSQL(复杂查询) 4.2 KV(简单查询) 5. 在线DDL相关模块 6. GC机制与相关模块 7. TiDB Server的缓存 8. 热点小表缓存 9. …

分布式搜索-elaticsearch基础 安装es

这里是在虚拟机的Linux系统里安装es的教程: 1.创建网络 在Finashell终端输入指令 docker network create es-net 2.将es.tar安装包放入tmp的目录下 输入指令加载镜像:docker load -i es.tar 3.再运行docker 命令 docker run -d \--name es \-e "ES_JAVA_O…

先有JVM还是先有垃圾回收器?

是先有垃圾回收器再有JVM呢,还是先有JVM再有垃圾回收器呢?或者是先有垃圾回收再有JVM呢?历史上还真是垃圾回收更早面世,垃圾回收最早起源于1960年诞生的LISP语言,Java只是支持垃圾回收的其中一种。下面我们就来刨析刨析…

windows下mysql5.6下载安装(多实例安装)

目录 1、下载 2、安装步骤 3、mysql多实例安装 1、下载 http://dev.mysql.com/downloads/windows/installer/5.6.html 2、安装步骤 我们采用自定义安装模式:选择32位或64位 默认即可: 说明,如果没有该页面就上一步,选择高级选…

Java代理模式的实现详解

一、前言 1.1、说明 本文章是在学习mybatis框架源码的过程中,发现对于动态代理Mapper接口这一块的代理实现还是有些遗忘和陌生,因此在本文章中就Java实现代理模式的过程进行一个学习和总结。 1.2、参考文章 《设计模式》(第2版&#xff0…

SQL——SERVER的建表主要操作

目录 一:数据存储问题 1.表的相关数据 2.表,字段,记录 二:建表 1.创建表头 2. 数据类型 3.保存数据 4.数据冗余 5.使用命令重置表 7.设置主键 一:数据存储问题 1.表的相关数据 表是数据库的基本单位&…

scratch求和 2024年3月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch求和 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、pytho…