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 Django做网页
Nov 04 Python
Linux环境下MySQL-python安装过程分享
Feb 02 Python
Python实现对比不同字体中的同一字符的显示效果
Apr 23 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
安装docker-compose的两种最简方法
Jul 30 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
Django分组聚合查询实例分享
Apr 29 Python
Python趣味挑战之教你用pygame画进度条
May 31 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 遍历XP文件夹下所有文件
2008/11/27 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
Python中atexit模块的基本使用示例
2015/07/08 Python
详解Django中的过滤器
2015/07/16 Python
教大家使用Python SqlAlchemy
2016/02/12 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
python 实现超级玛丽游戏
2020/11/25 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
一道SQL存储过程面试题
2016/10/07 面试题
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
采购员工作总结范文
2015/08/12 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript