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

【TORCH】查看dataloader里的数据,通过dataloader.dataset或enumerate

文章目录

    • dataloader.dataset
      • 示例代码
        • 使用自定义数据集
        • 使用 MNIST 数据集
      • 说明
    • enumerate
      • 示例代码
      • 说明
      • 使用 MNIST 数据集的例子

dataloader.dataset

是的,您可以直接访问 train_loader 的数据集来查看数据,而不必通过 enumerate 遍历数据加载器。可以通过 train_loader.dataset 属性来访问数据集,然后直接索引或查看数据集中的数据。

示例代码

以下是一个如何直接查看 train_loader 数据集数据的示例:

使用自定义数据集
import torch
from torch.utils.data import DataLoader, TensorDataset# 生成一些示例数据
x_data = torch.randn(100, 10)  # 100 个样本,每个样本有 10 个特征
y_data = torch.randn(100, 1)   # 100 个样本,每个样本有 1 个标签# 创建 TensorDataset 和 DataLoader
dataset = TensorDataset(x_data, y_data)
train_loader = DataLoader(dataset, batch_size=16, shuffle=True)# 直接查看 train_loader 中的数据集
print(f'Total samples in dataset: {len(train_loader.dataset)}')# 查看前 5 个样本
for i in range(5):x, y = train_loader.dataset[i]print(f'Sample {i+1}')print(f'x: {x}')print(f'y: {y}')print()
使用 MNIST 数据集
import torch
from torchvision import datasets, transforms
from torch.utils.data import DataLoader# 定义数据转换
transform = transforms.Compose([transforms.ToTensor()])# 下载并加载 MNIST 数据集
train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)# 直接查看 train_loader 中的数据集
print(f'Total samples in dataset: {len(train_loader.dataset)}')# 查看前 5 个样本
for i in range(5):x, y = train_loader.dataset[i]print(f'Sample {i+1}')print(f'x: {x.shape}')  # x 是形状为 [1, 28, 28] 的图像张量print(f'y: {y}')        # y 是标签print()

说明

  1. 自定义数据集:在第一个示例中,我们生成了随机数据并创建了一个 TensorDataset。然后,我们创建一个 DataLoader 并直接访问其数据集 train_loader.dataset。我们打印了数据集的总样本数,并查看了前 5 个样本。
  2. MNIST 数据集:在第二个示例中,我们使用了 PyTorch 的 datasets.MNIST 来下载和加载 MNIST 数据集。我们同样创建了一个 DataLoader 并直接访问其数据集 train_loader.dataset。我们打印了数据集的总样本数,并查看了前 5 个样本。

通过这种方法,您可以直接访问并查看 train_loader 中的数据集,而不必遍历数据加载器。如果您有更多问题或需要进一步的帮助,请告诉我!

enumerate

在 PyTorch 中,DataLoader 对象通常用于加载训练和测试数据。要查看 train_loader 中的数据 xy,您可以遍历 train_loader 并打印或检查数据。以下是一个示例,展示了如何查看 train_loader 中的数据:

示例代码

假设您已经有一个定义好的 train_loader,它加载了训练数据集:

import torch
from torch.utils.data import DataLoader, TensorDataset# 生成一些示例数据
x_data = torch.randn(100, 10)  # 100 个样本,每个样本有 10 个特征
y_data = torch.randn(100, 1)   # 100 个样本,每个样本有 1 个标签# 创建 TensorDataset 和 DataLoader
dataset = TensorDataset(x_data, y_data)
train_loader = DataLoader(dataset, batch_size=16, shuffle=True)# 查看 train_loader 中的数据
for i, (x, y) in enumerate(train_loader):print(f'Batch {i+1}')print(f'x: {x}')print(f'y: {y}')print()# 如果只想查看一个批次的数据,可以在这里 breakbreak

说明

  1. 生成数据:我们首先生成一些示例数据 x_datay_data,每个样本有 10 个特征和 1 个标签。
  2. 创建数据集:我们使用 TensorDatasetx_datay_data 结合起来。
  3. 创建 DataLoader:我们创建一个 DataLoader 对象 train_loader,指定批次大小为 16,并启用数据打乱(shuffle)。
  4. 遍历 DataLoader:我们遍历 train_loader 中的每个批次,并打印批次编号以及对应的 xy 数据。

通过这种方法,您可以查看 train_loader 中的数据。如果您只想查看一个批次的数据,可以在第一个循环中加入 break

使用 MNIST 数据集的例子

如果您使用的是像 MNIST 这样的标准数据集,代码会稍有不同:

import torch
from torchvision import datasets, transforms
from torch.utils.data import DataLoader# 定义数据转换
transform = transforms.Compose([transforms.ToTensor()])# 下载并加载 MNIST 数据集
train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)# 查看 train_loader 中的数据
for i, (x, y) in enumerate(train_loader):print(f'Batch {i+1}')print(f'x: {x}')  # x 是形状为 [batch_size, 1, 28, 28] 的图像张量print(f'y: {y}')  # y 是形状为 [batch_size] 的标签张量print()# 如果只想查看一个批次的数据,可以在这里 breakbreak

在这个例子中,x 是一个形状为 [batch_size, 1, 28, 28] 的图像张量,y 是一个形状为 [batch_size] 的标签张量。每个批次的数据会被打印出来。

通过上述方法,您可以方便地查看 train_loader 中的 xy 数据。如果您有更多问题或需要进一步的帮助,请告诉我!

相关文章:

【TORCH】查看dataloader里的数据,通过dataloader.dataset或enumerate

文章目录 dataloader.dataset示例代码使用自定义数据集使用 MNIST 数据集 说明 enumerate示例代码说明使用 MNIST 数据集的例子 dataloader.dataset 是的,您可以直接访问 train_loader 的数据集来查看数据,而不必通过 enumerate 遍历数据加载器。可以通…...

KDTree 简单原理与实现

介绍 K-D树是一种二叉树的数据结构,其中每个节点代表一个k维点,可用于组织K维空间中的点,其中K通常是一个非常大的数字。二叉树结构允许对多维空间中的点进行非常有效的搜索,包括最近邻搜索和范围搜索,树中的每个非叶…...

[c++] 可变参数模版

前言 可变参数模板是C11及之后才开始使用,学校的老古董编译器不一定能用 相信大家在刚入门c/c时都接触过printf函数 int printf ( const char * format, ... ); printf用于将数据格式化输出到屏幕上,它的参数非常有意思,可以支持任意数量,任意类型的多参数.而如果我们想实现类…...

QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2

QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2 本方案使用了QGraphicsEffect,由于QGraphicsEffect对一些控件会有渲染问题,比如列表、表格等,所以暂时仅作为研究,优先其他方案 在之前的文章中&#…...

数据结构之“队列”(全方位认识)

🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 前言 上期博客介绍了” 栈 “这个数据结构,他具有先进后出的特点。本期介绍“ 队列 ”这个数据结构,他具有先进先出的特点。 目录…...

密码学复习

目录 基础 欧拉函数 欧拉函数φ(n)定义 计算方法的技巧 当a=a_1*a_2*……*a_n时 欧拉定理 剩余系 一些超简单密码 维吉尼亚 密钥fox 凯撒(直接偏移) 凯特巴氏(颠倒字母表) 摩斯密码(字母对应电荷线) 希尔(hill)密码 一些攻击 RSA 求uf+vg=1 快速幂模m^…...

【文献解析】一种像素级的激光雷达相机配准方法

大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激…...

Http 实现请求body体和响应body体的双向压缩方案

目录 一、前言 二、方案一(和http header不进行关联) 二、方案二(和http header进行关联) 三、 客户端支持Accept-Encoding压缩方式,服务器就一定会进行压缩吗? 四、参考 一、前言 有时请求和响应的body体比较大,需要进行压缩,以减少传输的带宽。 二、方案一(和…...

C++(Qt)-GIS开发-简易瓦片地图下载器

Qt-GIS开发-简易瓦片地图下载器 文章目录 Qt-GIS开发-简易瓦片地图下载器1、概述2、安装openssl3、实现效果4、主要代码4.1 算法函数4.2 瓦片地图下载url拼接4.3 多线程下载 5、源码地址6、参考 更多精彩内容👉个人内容分类汇总 👈👉GIS开发 …...

誉天教育7月开班计划:为梦想插上腾飞的翅膀!

随着夏日的脚步渐近,誉天教育也迎来了新一轮的学习热潮。在这个充满活力和希望的季节里,我们精心策划了7月的开班计划,旨在为广大学子提供一个优质、高效的学习平台,助力他们追逐梦想,实现自我价值。 本月 Linux云计算…...

STM32基础篇:GPIO

GPIO简介 GPIO:即General Purpose Input/Output,通用目的输入/输出。就是一种片上外设(内部模块)。 对于STM32的芯片来说,周围有一圈引脚,有时需要对引脚进行读写(读:从外部输入一…...

HTTPS 发送请求出现TLS握手失败

最近在工作中,调外部接口,发现在clientHello步骤报错,服务端没有返回serverHello。 从网上找了写方法,都没有解决; 在idea的vm options加上参数: -Djavax.net.debugSSL,handshake 把SSL和handshake的日…...

数字化精益生产系统--IFS财务管理系统

IFS财务管理系统是一款功能丰富、高效且灵活的企业财务管理软件,广泛应用于多个行业和不同规模的企业中。以下是对IFS财务管理系统的功能设计:...

基于SpringBoot的校园台球厅人员与设备管理系统

本系统是要设计一个校园台球厅人员与设备管理系统,这个系统能够满足校园台球厅人员与设备的管理及用户的校园台球厅人员与设备管理功能。系统的主要功能包括首页、个人中心、用户管理、会员账号管理、会员充值管理、球桌信息管理、会员预约管理、普通预约管理、留言…...

免杀笔记 ---> Session0--DLL注入

刚更新完上一篇,于是我们就马不停蹄的去跟新下一篇!! Session0注入 :: 各位看官如果觉得还不错的可以给博主点个赞💕💕 这次,我把这个脚本直接传到Github上了 喜欢的师傅点个Star噢…...

如何做好IT类的技术面试?

我们在找工作时,需要结合自己的现状,针对意向企业做好充分准备。作为程序员,你有哪些面试IT技术岗的技巧? 方向一:分享你面试IT公司的小技巧 我分享一些基于广泛观察和用户反馈的面试IT公司的小技巧: 技术准…...

A7 配置方式Master SPI如何更改位宽

在 FPGA 完成自初始化后,INIT 释放,FPGA 对模式引脚 (M[2:0]) 进行采样,以确定使用哪种配置模式。当模式引脚 M[2:0] 001 时,FPGA 开始以大约 3 MHz 的频率在 CCLK 上输出时钟。随后,FCS_B 驱动为低电平,紧…...

linux kthread任务管理

目录 一、linux 创建内核线程1.1 kthread_create1.2 kthread_create_worker kthread_queue_work 二、设置线程优先级和调度策略2.1 sched_setscheduler2.2 调度策略 一、linux 创建内核线程 1.1 kthread_create 在 linux 中,可以使用 kthread_create 接口创建内核…...

第一节 网络安全概述

一.网络空间安全 网络空间:一个由信息基础设施组成相互依赖的网络。 ---- 海陆空天(大海、陆 地、天空、航天) 通信保密阶段 ---- 计算机安全 ----- 信息系统安全 ----- 网络空间安全 计算机安全:开始秉持着“严于律己&#x…...

星光云VR全景系统源码

星光云VR全景系统源码 体验地址请查看...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​,覆盖应用全生命周期测试需求,主要提供五大核心能力: ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

倒装芯片凸点成型工艺

UBM&#xff08;Under Bump Metallization&#xff09;与Bump&#xff08;焊球&#xff09;形成工艺流程。我们可以将整张流程图分为三大阶段来理解&#xff1a; &#x1f527; 一、UBM&#xff08;Under Bump Metallization&#xff09;工艺流程&#xff08;黄色区域&#xff…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...

JS设计模式(5): 发布订阅模式

解锁JavaScript发布订阅模式&#xff1a;让代码沟通更优雅 在JavaScript的世界里&#xff0c;我们常常会遇到这样的场景&#xff1a;多个模块之间需要相互通信&#xff0c;但是又不想让它们产生过于紧密的耦合。这时候&#xff0c;发布订阅模式就像一位优雅的信使&#xff0c;…...

docker 部署redis集群 配置

docker的网络模式 网桥模式每次重启容器都有可能导致容器ip地址变化&#xff0c;需要固定ip的自己自定义网络&#xff0c;这里介绍的是默认网络模式 docker创建容器 docker run --name redis6379 -p 6379:6379 -p 16379:16379 -v /etc/redis/redis6379:/etc/redis -d --r…...

Ansys Maxwell:线圈和磁体的静磁 3D 分析

本博客展示了如何在 Ansys Maxwell 中执行静磁 3D 分析&#xff0c;以计算载流线圈和永磁体之间相互作用产生的扭矩。在这个例子中&#xff0c;线圈中的电流产生一个沿 Y 轴指向的磁场&#xff0c;而永磁体沿 X 轴被磁化。这种配置导致围绕 Z 轴的扭矩。分步工作流程包括构建几…...