关于challenge:Pytorch-数据读取机制Dataloader与Dataset

文章和代码曾经归档至【Github仓库:https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 pytorch教程 也可获取。

数据读取机制Dataloader与Dataset

数据分为四个模块

Sampler:生成索引

DataSet:依据索引读取图片及标签。

DataLoader 与 Dataset

torch.utils.data.DataLoader

性能:构建可迭代的数据装载器

  • dataset : Dataset 类,决定数据从哪读取
    及如何读取
  • batchsize : 批大小
  • num\_works : 是否多过程读取数据(缩小工夫,减速模型训练)
  • shuffle:每个 epoch 是否乱序
  • drop\_last :当样本数不能被 batchsize 整除时,是否舍弃最初一批数据

辨别Epoch、Iteration、Batchsize

Epoch: 所有训练样本都已输出到模型中,称为一个 Epoch

Iteration:一批样本输出到模型中,称之为一个 Iteration

Batchsize:批大小,决定一个 Epoch 有多少个 Iteration

样本总数: 80 Batchsize 8

1 Epoch = 10 Iteration

样本总数: 87 Batchsize 8

1 Epoch = 10 Iteration?drop\_last = True

1 Epoch = 11 Iteration?drop\_last = False

torch.utils.data.Dataset

性能:

Dataset 抽象类,所有自定义的Dataset 须要继承它,并且复写\_getitem\_()

getitem:接管一个索引,返回一个样本

对于读取数据

通过debug详解数据的读取过程

DataLoader依据是否采纳多过程,进入DataLoaderIter,应用Sampler获取index,再通过索引调用DatasetFetcher,在硬盘中读取imgandLabel,通过collate\_fn整顿成一个batchData。

本文参加了 SegmentFault 思否写作挑战「摸索编码世界之旅 – 记我的第一份编程工作」,欢送正在浏览的你也退出。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理