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实现用于测试网站访问速率的方法
May 26 Python
python如何在终端里面显示一张图片
Aug 17 Python
Django rest framework实现分页的示例
May 24 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
python多进程读图提取特征存npy
May 21 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 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模板原理讲解
2013/11/13 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
Python实例一个类背后发生了什么
2016/02/09 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
django中静态文件配置static的方法
2018/05/20 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
python数字类型math库原理解析
2020/03/02 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
Python 多进程原理及实现
2020/12/21 Python
自主招生自荐信格式
2013/12/03 职场文书
仓库理货员岗位职责
2013/12/18 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
师德演讲稿范文
2014/05/06 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
大学生就业意向书
2015/05/11 职场文书
2015年司法局工作总结
2015/05/22 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers