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

 更新时间:2019年08月06日 10:14:54   作者:建森要健身  
这篇文章主要介绍了pytorch中如何使用DataLoader对数据集进行批处理的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

第一步:打开冰箱门。

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

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

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

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

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

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

第二步:把大象装进去。

就是把上一步做成的数据集放入Data.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来模拟我们的训练过程,即我们在这里对搭建好的网络进行喂入。

输出的结果是:

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

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

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

相关文章

  • 详解Python中Pandas read_csv参数使用

    详解Python中Pandas read_csv参数使用

    在使用 Pandas 进行数据分析和处理时,read_csv 是一个非常常用的函数,本文将详细介绍 read_csv 函数的各个参数及其用法,希望对大家有所帮助
    2022-10-10
  • Python 使用 raise 语句抛出异常的流程分析

    Python 使用 raise 语句抛出异常的流程分析

    在Python编程中,异常处理是至关重要的一部分,本文将探讨 Python 中 raise 语句的使用方法以及如何通过 raise 语句来抛出各种类型的异常,从而有效地进行异常处理,感兴趣的朋友跟随小编一起看看吧
    2021-02-02
  • python数组循环处理方法

    python数组循环处理方法

    今天小编就为大家分享一篇python数组循环处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 使用pandas中的DataFrame数据绘制柱状图的方法

    使用pandas中的DataFrame数据绘制柱状图的方法

    下面小编就为大家分享一篇使用pandas中的DataFrame数据绘制柱状图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python实现的插入排序算法原理与用法实例分析

    Python实现的插入排序算法原理与用法实例分析

    这篇文章主要介绍了Python实现的插入排序算法原理与用法,简单描述了插入排序的原理,并结合实例形式分析了Python实现插入排序的相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • python基于socket函数实现端口扫描

    python基于socket函数实现端口扫描

    这篇文章主要为大家详细介绍了python基于socket函数实现端口扫描,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • tensorflow 1.X迁移至tensorflow2 的代码写法

    tensorflow 1.X迁移至tensorflow2 的代码写法

    本文主要介绍了tensorflow 1.X迁移至tensorflow2 的代码写法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • pyqt5主窗口按键弹出子窗口的实现

    pyqt5主窗口按键弹出子窗口的实现

    本文主要介绍了pyqt5主窗口按键弹出子窗口的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 浅谈Python3 numpy.ptp()最大值与最小值的差

    浅谈Python3 numpy.ptp()最大值与最小值的差

    今天小编就为大家分享一篇浅谈Python3 numpy.ptp()最大值与最小值的差,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Appium自动化测试实现九宫格解锁

    Appium自动化测试实现九宫格解锁

    本文主要介绍了Appium自动化测试实现九宫格解锁,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论