Pytorch: 数据读取机制Dataloader与Dataset

简介: 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。

目录
相关文章
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【单点知识】基于实例详解PyTorch中的DataLoader类
【单点知识】基于实例详解PyTorch中的DataLoader类
302 2
|
2月前
|
机器学习/深度学习 算法 PyTorch
Pytorch自动求导机制详解
在深度学习中,我们通常需要训练一个模型来最小化损失函数。这个过程可以通过梯度下降等优化算法来实现。梯度是函数在某一点上的变化率,可以告诉我们如何调整模型的参数以使损失函数最小化。自动求导是一种计算梯度的技术,它允许我们在定义模型时不需要手动推导梯度计算公式。PyTorch 提供了自动求导的功能,使得梯度的计算变得非常简单和高效。
|
9月前
|
机器学习/深度学习 数据采集 PyTorch
使用自定义 PyTorch 运算符优化深度学习数据输入管道
使用自定义 PyTorch 运算符优化深度学习数据输入管道
46 0
|
2月前
|
数据采集 PyTorch 算法框架/工具
PyTorch基础之数据模块Dataset、DataLoader用法详解(附源码)
PyTorch基础之数据模块Dataset、DataLoader用法详解(附源码)
663 0
|
2月前
|
存储 数据可视化 PyTorch
PyTorch中 Datasets & DataLoader 的介绍
PyTorch中 Datasets & DataLoader 的介绍
79 0
|
2月前
|
存储 并行计算 Java
一文读懂 PyTorch 显存管理机制
一文读懂 PyTorch 显存管理机制
158 1
|
2月前
|
机器学习/深度学习 自然语言处理 PyTorch
Pytorch图像处理注意力机制SENet CBAM ECA模块解读
注意力机制最初是为了解决自然语言处理(NLP)任务中的问题而提出的,它使得模型能够在处理序列数据时动态地关注不同位置的信息。随后,注意力机制被引入到图像处理任务中,为深度学习模型提供了更加灵活和有效的信息提取能力。注意力机制的核心思想是根据输入数据的不同部分,动态地调整模型的注意力,从而更加关注对当前任务有用的信息。
172 0
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
PyTorch使用一维卷积对时间序列数据分类
PyTorch使用一维卷积对时间序列数据分类
140 0
|
8月前
|
机器学习/深度学习 PyTorch 算法框架/工具
时间序列pytorch搭建lstm用电量预测 完整代码数据
时间序列pytorch搭建lstm用电量预测 完整代码数据
187 0
|
21天前
|
机器学习/深度学习 自然语言处理 算法
【从零开始学习深度学习】49.Pytorch_NLP项目实战:文本情感分类---使用循环神经网络RNN
【从零开始学习深度学习】49.Pytorch_NLP项目实战:文本情感分类---使用循环神经网络RNN