pytorch中如何使用DataLoader对数据集进行批处理的方法


Posted in Python onAugust 06, 2019

最近搞了搞minist手写数据集的神经网络搭建,一个数据集里面很多个数据,不能一次喂入,所以需要分成一小块一小块喂入搭建好的网络。

pytorch中有很方便的dataloader函数来方便我们进行批处理,做了简单的例子,过程很简单,就像把大象装进冰箱里一共需要几步?

第一步:打开冰箱门。

我们要创建torch能够识别的数据集类型(pytorch中也有很多现成的数据集类型,以后再说)。

首先我们建立两个向量X和Y,一个作为输入的数据,一个作为正确的结果:

pytorch中如何使用DataLoader对数据集进行批处理的方法

随后我们需要把X和Y组成一个完整的数据集,并转化为pytorch能识别的数据集类型:

pytorch中如何使用DataLoader对数据集进行批处理的方法

我们来看一下这些数据的数据类型:

pytorch中如何使用DataLoader对数据集进行批处理的方法

可以看出我们把X和Y通过Data.TensorDataset() 这个函数拼装成了一个数据集,数据集的类型是【TensorDataset】。

好了,第一步结束了,冰箱门打开了。

第二步:把大象装进去。

就是把上一步做成的数据集放入Data.DataLoader中,可以生成一个迭代器,从而我们可以方便的进行批处理。

pytorch中如何使用DataLoader对数据集进行批处理的方法

DataLoader中也有很多其他参数:

  1. dataset:Dataset类型,从其中加载数据
  2. batch_size:int,可选。每个batch加载多少样本
  3. shuffle:bool,可选。为True时表示每个epoch都对数据进行洗牌
  4. sampler:Sampler,可选。从数据集中采样样本的方法。
  5. num_workers:int,可选。加载数据时使用多少子进程。默认值为0,表示在主进程中加载数据。
  6. collate_fn:callable,可选。
  7. pin_memory:bool,可选
  8. drop_last:bool,可选。True表示如果最后剩下不完全的batch,丢弃。False表示不丢弃。

好了,第二步结束了,大象装进去了。

第三步:把冰箱门关上。

好啦,现在我们就可以愉快的用我们上面定义好的迭代器进行训练啦。

在这里我们利用print来模拟我们的训练过程,即我们在这里对搭建好的网络进行喂入。

pytorch中如何使用DataLoader对数据集进行批处理的方法

输出的结果是:

pytorch中如何使用DataLoader对数据集进行批处理的方法

可以看到,我们一共训练了所有的数据训练了5次。数据中一共10组,我们设置的mini-batch是3,即每一次我们训练网络的时候喂入3组数据,到了最后一次我们只有1组数据了,比mini-batch小,我们就仅输出这一个。

此外,还可以利用python中的enumerate(),是对所有可以迭代的数据类型(含有很多东西的list等等)进行取操作的函数,用法如下:

pytorch中如何使用DataLoader对数据集进行批处理的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 容器总结整理
Apr 04 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
python生成密码字典的方法
Jul 06 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
Django权限设置及验证方式
May 13 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
python爬虫容易学吗
Jun 02 Python
python如何删除文件、目录
Jun 23 Python
如何用python免费看美剧
Aug 11 Python
Python实现自动签到脚本功能
Aug 20 Python
django foreignkey外键使用的例子 相当于left join
Aug 06 #Python
Python Django简单实现session登录注销过程详解
Aug 06 #Python
Django框架中序列化和反序列化的例子
Aug 06 #Python
python异常触发及自定义异常类解析
Aug 06 #Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 #Python
Django中reverse反转并且传递参数的方法
Aug 06 #Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 #Python
You might like
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
python中xrange和range的区别
2014/05/13 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
基于python时间处理方法(详解)
2017/08/14 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
python针对excel的操作技巧
2018/03/13 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
总经理职责范文
2013/11/08 职场文书
讲座主持词
2014/03/20 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
js不常见操作运算符总结
2021/11/20 Javascript