pytorch数据读取:DataLoader与Dataset

本文深入探讨了PyTorch中数据读取的关键组件DataLoader和Dataset。首先介绍了Dataset类,它是自定义数据集的基础,用于加载和封装数据。然后详细阐述了DataLoader的作用,它负责从Dataset中批量加载数据并进行预处理,包括多线程加载以提高效率。此外,还讨论了如何通过调整参数来优化DataLoader的性能,如批大小、 shuffle和num_workers等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 


 

数据模块通常分为四个子模块,分别是收集、划分、读取和处理。

 

首先要收集数据,数据分为样本和标签 。

数据划分:要将数据划分为训练集、验证集和测试集。

数据读取,也就是今天要学习的DataLoader。DataLoader还分为Sampler和Dataset两个子模块。Sampler的作用是生成索引,也就是样本的序号。Dataset是根据索引读取图片和标签。

数据预处理。pytorch中是通过transforms实现的。

 

一、DataLoader与Dataset

主要学习数据读取模块

 

1、DataLoader

 

DataLoad是构建一个可迭代的数据装载器。迭代的时候,每一个for循环,每一个iteration都是从DataLoader中获取一个batchsize大小的数据。

共有11个参数,常用的有五个。

dataset:

batchsize:

num_works:

shuffle:

drop_last:

 

要理解drop_last,我们先理解Epoch、iteration、和batchsize的关系。

 

Epoch:所有样本输入一次。

所有样本会分成很多批输入,分成多少批就是有多少个iteration。批大小就是batchsize。

 

如果不能整除就需要用到drop_last参数。

 

 

2、Dataset

Dataset是用来定义数据从哪里读取以及如何读取的问题。

pytorch中给定的Dataset是一个抽象类。我们所有的自定义的Dataset都要继承它,并一定要重写它的__getitem()方法。

__getitem__()实现的功能就是接受索引,返回样本。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值