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搭建简易服务器分析与实现
Dec 15 Python
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
简单谈谈Python中的几种常见的数据类型
Feb 10 Python
Python代码实现KNN算法
Dec 20 Python
python编程嵌套函数实例代码
Feb 11 Python
pandas DataFrame索引行列的实现
Jun 04 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
浅谈Python __init__.py的作用
Oct 28 Python
python+playwright微软自动化工具的使用
Feb 02 Python
python中sqllite插入numpy数组到数据库的实现方法
Jun 21 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
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP中用hash实现的数组
2011/07/17 PHP
php的常量和变量实例详解
2017/06/27 PHP
php中如何执行linux命令详解
2018/11/06 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
python 迭代器和iter()函数详解及实例
2017/03/21 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python之用户输入的实例
2018/06/22 Python
python斐波那契数列的计算方法
2018/09/27 Python
python版本单链表实现代码
2018/09/28 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
Python读取yaml文件的详细教程
2020/07/21 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
大学生自我鉴定
2013/12/08 职场文书
村庄环境整治方案
2014/05/15 职场文书
踏青活动策划方案
2014/08/19 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
小孩不笨观后感
2015/06/03 职场文书
第一军规观后感
2015/06/12 职场文书