DataLoader使用

news2024/9/20 6:18:21

文章目录

    • 一、认识dataloader
    • 二、DataLoader整合数据集
    • 三、使用DataLoader展示图片方法
    • 四、去除结尾不满足batch_size设值图片的展示

一、认识dataloader

DataLoader 用于封装数据集,并提供批量加载数据的迭代器。它支持自动打乱数据、多线程数据加载等功能。dataset只是告诉我们数据集在一个什么位置,而dataloader则可以把数据加载到神经网络当中。dataloader就相当于在dataset当中去取数据,怎么取。
在这里插入图片描述
dataset就相当于一副牌,而dataloader就相当于每次从dataset这幅牌堆中怎么抽牌,是一次性抽5张牌,用左手抽还是右手抽。相对而言dataloader就是方法。

二、DataLoader整合数据集

将4个数据中的img 和 target 分别封装起来,称为imgs,targets
在这里插入图片描述

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

#准备的测试数据集
test_data = torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor())

test_loader = DataLoader(dataset=test_data,batch_size=4,shuffle=True,num_workers=0,drop_last=False)

#测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape)
print(target)

for data in test_loader:
    imgs, targets = data
    print(imgs.shape)
    print(targets)

test_loader = DataLoader(
dataset=test_data, # 指定要加载的数据集
batch_size=4, # 指定每个批次的大小为4,4表示从数据集中取4个数据
shuffle=True, # 设置为True表示在每个epoch开始时打乱数据。一个epoch意味着数据加载器将整个数据集按照指定的顺序(可能是随机的,如果设置了shuffle=True)遍历一次。
num_workers=0, # 指定加载数据时使用的子进程数,0表示在主进程中加载数据
drop_last=False # 设置为False表示即使最后一个批次的数据量小于batch_size也会加载,True则不加载
)

print(imgs.shape)表示打印批次中图像张量的形状,例如(4, 3, 32, 32),表示有4张图像,每张图像有3个颜色通道,大小为32x32像素

运行结果:
在这里插入图片描述
在机器学习中,这样的张量通常用来表示分类任务中的标签。例如,在 CIFAR-10 数据集中,每个图像都有一个与之对应的标签,表示图像中物体的类别。CIFAR-10 数据集包含10个类别,每个类别用一个数字(0到9)来表示。

在这个例子中,tensor([3, 3, 7, 1]) 可能表示一个包含4张图像的批次,每张图像的标签分别是:
第一张图像的标签是 3
第二张图像的标签也是 3
第三张图像的标签是 7
第四张图像的标签是 1

三、使用DataLoader展示图片方法

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

#准备的测试数据集
test_data = torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor())

test_loader = DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=False)

#测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape)
print(target)

writer = SummaryWriter("dataloader")

# 初始化一个变量step,用于记录当前的步骤或批次编号
step = 0

# 使用add_images方法将当前批次的图像写入TensorBoard日志
# "test_data"是图像在TensorBoard中的标签,imgs是要记录的图像张量,step是当前的步骤编号
for data in test_loader:
    imgs, targets = data
    writer.add_images("test_data", imgs, step)

    # 每次迭代后,步骤编号增加1
    step = step + 1

writer.close()

运行结果:
在这里插入图片描述

四、去除结尾不满足batch_size设值图片的展示

将drop_last 设置为True,就可以去除末尾不满足batch_size设值的照片

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

#准备的测试数据集
test_data = torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor())

test_loader = DataLoader(dataset=test_data, batch_size=64,shuffle=True,num_workers=0,drop_last=True)

#测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape)
print(target)

writer = SummaryWriter("dataloader")

# 初始化一个变量step,用于记录当前的步骤或批次编号
step = 0
# 使用add_images方法将当前批次的图像写入TensorBoard日志
# "test_data"是图像在TensorBoard中的标签,imgs是要记录的图像张量,step是当前的步骤编号
for data in test_loader:
    imgs, targets = data
    writer.add_images("test_data_drop_last", imgs, step)

    # 每次迭代后,步骤编号增加1
    step = step + 1

writer.close()

运行结果:
在这里插入图片描述
如下面的照片,刚好满足batch_size设值。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全】-文件上传漏洞实战-upload-labs(0~16)

准备&#xff1a; 一句话木马&#xff1a;<? php eval($_REQUEST[cmd]); ?)> 格式&#xff1a;写入txt文本重命名后缀问.php /.php 格式&#xff0c;看具体要求上传。 Pass-01: 显示页面源代码&#xff0c;发现是js对不合法文件进行检查,上传修改为.jpg的php文件直接…

孩子为什么会有自闭症?

自闭症&#xff0c;这个复杂而神秘的神经发展性障碍&#xff0c;长久以来一直困扰着无数家庭和专业人士。尽管其确切原因尚未被完全揭示&#xff0c;但多年的研究与实践已经为我们提供了多个可能的解释框架。 首先&#xff0c;遗传因素在自闭症的发病中扮演了重要角色。科学家发…

HTML5超酷炫的水果蔬菜在线商城网站源码系列模板1

文章目录 1.设计来源1.1 主界面1.2 商品列表界面1.3 商品详情界面1.4 其他界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/142059238 HTML5超酷炫的水果蔬菜在线商城网…

五星级可视化页面(04):城市鸟瞰地图,恢宏大气。

今天继续分享五星级可视化大屏界面&#xff0c;本期分享城市3D鸟瞰图的&#xff0c;非常的恢宏大气。

101 个 React 技巧和窍门

在这篇文章中&#xff0c;我分享了我多年来学到的101个最佳提示和技巧。准备好了吗&#xff1f;让我们开始吧&#x1f4aa;&#xff01; 注意&#xff1a;本指南假定你对 React 有基本的了解&#xff0c;并了解术语 props、state、context 等。 类别 #1&#xff1a;组件组织 1…

Mac中Twig模版安装与SSTI漏洞学习

感谢大佬的文章参考学习。 SSTI&#xff1a;https://www.cnblogs.com/bmjoker/p/13508538.html Homebrew&#xff1a;快速开始 - Homebrew 中文网 Homebrew安装 一键快捷安装&#xff1a;默认使用中科大的源 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homeb…

LDAP HA 配置

目录 1 LDAP 高可用1.1 介绍1.2 安装1、环境2、全量数据同步3、配置LDAP的HA4、测试 总结 1 LDAP 高可用 1.1 介绍 LDAP的主从同步模式有5种&#xff1a; MirrorMode为ldap ha比较主流的一种模式&#xff0c;本文基于MirrorMode模式进行部署。 如果想要主从LDAP是同一个IP…

QT QPrinter无弹窗后台打印

最近遇到一个打印相关的问题,就是如何通过代码设定打印的相关信息,然后一键打印出来呢,不通过系统的打印设置界面(下图所示)进行设置内容,直接实现打印? 网上找到的一般的打印都如下所示,都是通过了QPrintDialog进行弹出系统打印设置,然后再进行打印,才完成打印,类…

所有即将登陆iPhone 16的Apple智能功能以及预期发布时间

苹果即将在9月9日的“Glowtime”&#xff08;闪耀时刻&#xff09;发布会上揭示和&#xff0c;这是本年度最值得期待的iPhone。 据悉&#xff0c;今年的iPhone将推出更大的屏幕、更快的芯片、更好的摄像头、新的颜色以及更多的内部升级。但是&#xff0c;除了这些硬件提升外&a…

如何进行匈牙利匹配

1 问题提出 在做目标检测的指标评价时,模型会输出一系列目标结果,而标注的GT又会有一些结果,如何将预测值和GT标注真值进行匹配呢?这个时候就可以使用匈牙利匹配来解决问题! For example: 2 匈牙利匹配使用流程 构建代价矩阵 可以根据PRED和GT中心点距离或者颜色特征的…

消防指挥中心控制台:守护安全的关键枢纽

在消防应急救援的战场上&#xff0c;嘉德立消防指挥中心控制台犹如一座坚实的堡垒&#xff0c;发挥着至关重要的作用。它是消防指挥的核心枢纽&#xff0c;连接着无数的信息与行动&#xff0c;为保护人民生命财产安全提供了强大的保障。 一、重要地位与作用 消防指挥中心控制台…

爆火AI教学视频Grant Sanderson作者是谁?

Grant Sanderson 是一位著名的数学教育家和 YouTube 频道 3Blue1Brown 的创始人。他于 2015 年毕业于斯坦福大学&#xff0c;获得数学学士学位。在斯坦福大学期间&#xff0c;他不仅专注于数学&#xff0c;还涉猎了计算机科学领域。 毕业后&#xff0c;Sanderson 加入了 Khan A…

小白看八字排盘需要的基础知识

我们在看生辰八字的时候比较专业的大师都会先根据命主的八字排盘起卦得出命盘卦象&#xff0c;然后再进行分析&#xff0c;今天我们来教大家认识八字命盘&#xff0c;小白看八字排盘需要学习哪些基础知识&#xff1f; 什么是八字排盘 八字排盘&#xff0c;顾名思义就是将一个…

图分类!!!

deepwalk 使用图中节点与节点的共现关系来学习节点的向量表示。那么关键的问题就是如何来描述节点与节点的共现关系&#xff0c;DeepWalk给出的方法是使用随机游走(RandomWalk)的方式在图中进行节点采样,RandomWalk是一种可重复访问已访问节点的深度优先遍历算法。给定当前访问…

Kafka--高吞吐量消息中间件

文章目录 Kafka特点和优势Kafka特点Kafka优势Kafka角色分区和副本的优势Kafka写入流程 Kafka部署单机集群部署1.环境准备ZooKeeper2.配置文件说明3.各节点部署Kafka4.启动服务5.确保服务启动 Kafka读写数据创建Topic获取Topic验证Topic详情生成Topic消费Topic删除 Topic Kafka特…

IP网络广播服务平台upload接口存在任意文件上传漏洞

免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 漏洞描述 …

解决常见 Android 问题的 9 大 Android 手机修复软件

许多人发现 Android 手机或平板电脑上的 Android 操作系统起初运行良好&#xff0c;但随着时间的推移&#xff0c;可能会出现各种 Android 系统问题。您可能会遇到一些问题&#xff0c;例如系统速度变慢、启动无响应、挂起错误、界面冻结、短信停滞、应用程序崩溃等。好吧&…

具体函数的卡诺图填入

目录 用卡诺图表示逻辑函数 基本步骤 例子1 例子2 例子3 用卡诺图表示逻辑函数 基本步骤 例子1 由真值表得卡诺图。 在函数值为1的地方在卡诺图上画上1。 例子2 例子3 非标准与或式&#xff0c;要找到公共部分。 将AB所在的那一行填上1。 将A非D的那个部分也填上1。 再…

平价蓝牙耳机哪个牌子好?四款宝藏机型独家推荐

在如今这个科技迅速发展的时代&#xff0c;蓝牙耳机已成为我们日常生活中不可或缺的一部分&#xff0c;尤其是对于那些寻求性价比的消费者来说&#xff0c;平价蓝牙耳机市场是一个充满选择的广阔天地&#xff0c;那么平价蓝牙耳机哪个牌子好&#xff1f;面对繁多的品牌和机型&a…

为什么有人说 PMP 是水证,它的含金量到底怎么样?

关于 PMP 证书是否值得考&#xff1f;有没有价值这个问题争议一直很大。 网传 pmp 培训机构的通过率高达 97%&#xff0c;很多人考了吐槽PMP没用&#xff0c;是“水证”&#xff0c;但是每年考 PMP 的人不减反增&#xff0c;大家可以想一下&#xff0c;这是为什么呢&#xff1…