当前位置: 首页 > 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全景系统源码 体验地址请查看...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...