【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()
说明
- 自定义数据集:在第一个示例中,我们生成了随机数据并创建了一个
TensorDataset。然后,我们创建一个DataLoader并直接访问其数据集train_loader.dataset。我们打印了数据集的总样本数,并查看了前 5 个样本。 - MNIST 数据集:在第二个示例中,我们使用了 PyTorch 的
datasets.MNIST来下载和加载 MNIST 数据集。我们同样创建了一个DataLoader并直接访问其数据集train_loader.dataset。我们打印了数据集的总样本数,并查看了前 5 个样本。
通过这种方法,您可以直接访问并查看 train_loader 中的数据集,而不必遍历数据加载器。如果您有更多问题或需要进一步的帮助,请告诉我!
enumerate
在 PyTorch 中,DataLoader 对象通常用于加载训练和测试数据。要查看 train_loader 中的数据 x 和 y,您可以遍历 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
说明
- 生成数据:我们首先生成一些示例数据
x_data和y_data,每个样本有 10 个特征和 1 个标签。 - 创建数据集:我们使用
TensorDataset将x_data和y_data结合起来。 - 创建 DataLoader:我们创建一个
DataLoader对象train_loader,指定批次大小为 16,并启用数据打乱(shuffle)。 - 遍历 DataLoader:我们遍历
train_loader中的每个批次,并打印批次编号以及对应的x和y数据。
通过这种方法,您可以查看 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 中的 x 和 y 数据。如果您有更多问题或需要进一步的帮助,请告诉我!
相关文章:
【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全景系统源码 体验地址请查看...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
GeoServer发布PostgreSQL图层后WFS查询无主键字段
在使用 GeoServer(版本 2.22.2) 发布 PostgreSQL(PostGIS)中的表为地图服务时,常常会遇到一个小问题: WFS 查询中,主键字段(如 id)莫名其妙地消失了! 即使你在…...
