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操作摄像头截图实现远程监控的例子
Mar 25 Python
python通过socket查询whois的方法
Jul 18 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
Python如何实现转换URL详解
Jul 02 Python
在django中,关于session的通用设置方法
Aug 06 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
解决pycharm下pyuic工具使用的问题
Apr 08 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
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
python安装pil库方法及代码
2019/06/25 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
python palywright库基本使用
2021/01/21 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
C语言笔试题回忆
2015/04/02 面试题
动物科学专业毕业生的自我评价
2013/11/29 职场文书
实习自我评价怎么写
2013/12/02 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
软件售后服务承诺书
2014/05/21 职场文书
工作时间调整通知
2015/04/24 职场文书
公司年夜饭通知
2015/04/25 职场文书