PyTorch 之 DataLoader

摘要:
在准备小批处理时,我们可以执行多线程并行处理。无法使用Next()访问。迭代器可以使用iter(数据加载器)返回。然后,我们可以在内部使用yield为每个批次返回DataLoader(对象)的一些参数:#传入数据集(数据集)#每个批次有多少个样本批次_Size(int,重新排序数据洗牌(bool,

DataLoader

DataLoader 是 PyTorch 中读取数据的一个重要接口,该接口定义在 dataloader.py 文件中,该接口的目的: 将自定义的 Dataset 根据 batch size 的大小、是否 shuffle 等封装成一个 batch size 大小的 Tensor,用于后面的训练。

通过 DataLoader,使得我们在准备 mini-batch 时可以多线程并行处理,这样可以加快准备数据的速度。

DataLoader 是一个高效、简洁、直观地网络输入数据结构,便于使用和扩展

  • DataLoader 本质是一个可迭代对象,使用 iter() 访问,不能使用 next() 访问
  • 使用 iter(dataloader) 返回的是一个迭代器,然后使用 next() 访问
  • 也可以使用 for features, targets in dataloaders 进行可迭代对象的访问
  • 一般我们实现一个 datasets 对象,传入到 DataLoader 中,然后内部使用 yield 返回每一次 batch 的数据

DataLoader(object) 的部分参数:

# 传入的数据集
dataset(Dataset)

# 每个 batch 有多少个样本
batch_size(int, optional)

# 在每个 epoch 开始的时候,对数据进行重新排序
shuffle(bool, optional)

# 自定义从数据集中抽取样本的策略,如果指定这个参数,那么 shuffle 必须为 False
sampler(Sampler, optional)

# 与 sampler 类似,但是一次只返回一个 batch 的 indices(索引),如果指定这个参数,那么 batch_size, shuffle, sampler, drop_last 就不能再指定了
batch_sampler(Sampler, optional)

# 这个参数决定有多少进程处理数据加载,0 意味着所有数据都会被加载到主进程,默认为0
num_workers(int, optional)

# 如果设置为 True,则最后不足batch_size大小的数据会被丢弃,比如batch_size=64, 而一个epoch只有100个样本,则最后36个会被丢弃;如果设置为False,则最后的batch_size会小一点
drop_last(bool, optional)

Reference:

  1. pytorch之dataloader深入剖析

免责声明:文章转载自《PyTorch 之 DataLoader》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(19)jQuery操作文本和属性如何理解“高内聚低耦合”下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

FTP相关文章: Linux上的ftp服务器 vsftpd 之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传 ftp服务器Serv-U 设置允许自动创建不存在的目录     一、为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的。花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输...

理解mysql执行多表联合查询

阅读目录 一:inner join(内连接) 二:left join(左连接) 三:right join(右连接) 四:cross join(交叉连接) 五:union操作 六:node+mysql 多表联合查询 查询多张表一般有如下连接方法: 1)内连接:join, inner join2)外连接:left join, left outer jo...

GBT 33200-2016 社会治安综合治理 综治中心建设与管理规范 GBT 31000-2015 社会治安综合治理基础数据规范

阚总发的两个国标的标准文件, 看看里面对于数据和问题的分类等。 我们出统计分析,可以按照标准出各个大类小类的各种指标数据。 结合这几天给潍坊弄的12345的报告, 整理出一个可以结合吴中现有平台数据,形成一个可以做到的分析的list。 == 数据和问题的分类 各个大类小类的各种指标数据 可以做到的分析的list。 如果按照那些人,估计是需要给他们一个表格。...

原生java api操作ES数据库

原生java api操作ES数据库 该部分也只写了一点点,后面有更简单的做法,就没写完 有需要再继续写吧...........参考一下就好了 @SpringBootTest class JavaEsApplicationTests { @Autowired private RestHighLevelClient restHighLevel...

iptables 简单学习

目录 预热:网络基础 一、查看路由表信息 二、IP路由选择实验 1.route相关命令 2.实验需求 3.具体步骤 Iptables 防火墙 课程目标 一、防火墙介绍 二、Iptables防火墙介绍 三、Iptables防火墙结构 四、防火墙工作原理(数据包流向) 五、Iptables 基本语法 1>Filter表 1.示例1:...

mysql 缓存机制

了解mysql缓存吗(顺丰) mysql缓存机制就是缓存sql 文本及缓存结果,用KV形式保存再服务器内存中,如果运行相同的sql,服务器直接从缓存中去获取结果,不需要在再去解析、优化、执行sql。 如果这个表修改了,那么使用这个表中的所有缓存将不再有效,查询缓存值得相关条目将被清空。表中得任何改变是值表中任何数据或者是结构的改变,包括insert,upd...