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。

目录
相关文章
|
3月前
|
数据挖掘 PyTorch TensorFlow
|
2月前
|
机器学习/深度学习 监控 PyTorch
以pytorch的forward hook为例探究hook机制
【10月更文挑战第9天】PyTorch中的Hook机制允许在不修改模型代码的情况下,获取和修改模型中间层的信息,如输入和输出等,适用于模型可视化、特征提取及梯度计算。Forward Hook在前向传播后触发,可用于特征提取和模型监控。实现上,需定义接收模块、输入和输出参数的Hook函数,并将其注册到目标层。与Backward Hook相比,前者关注前向传播,后者侧重反向传播和梯度处理,两者共同增强了对模型内部运行情况的理解和控制。
|
2月前
|
机器学习/深度学习 存储 数据可视化
以pytorch的forward hook为例探究hook机制
【10月更文挑战第10天】PyTorch 的 Hook 机制允许用户在不修改模型代码的情况下介入前向和反向传播过程,适用于模型可视化、特征提取及梯度分析等任务。通过注册 `forward hook`,可以在模型前向传播过程中插入自定义操作,如记录中间层输出。使用时需注意输入输出格式及计算资源占用。
|
7月前
|
机器学习/深度学习 数据采集 PyTorch
pytorch中的数据索引
pytorch中的数据索引
63 0
|
3月前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
75 0
|
5月前
|
数据挖掘 PyTorch TensorFlow
Python数据分析新纪元:TensorFlow与PyTorch双剑合璧,深度挖掘数据价值
【7月更文挑战第30天】随着大数据时代的发展,数据分析变得至关重要,深度学习作为其前沿技术,正推动数据分析进入新阶段。本文介绍如何结合使用TensorFlow和PyTorch两大深度学习框架,最大化数据价值。
115 8
|
5月前
|
机器学习/深度学习 数据挖掘 TensorFlow
|
5月前
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
|
7月前
|
存储 数据可视化 PyTorch
PyTorch中 Datasets & DataLoader 的介绍
PyTorch中 Datasets & DataLoader 的介绍
146 0
|
2月前
|
算法 PyTorch 算法框架/工具
Pytorch学习笔记(九):Pytorch模型的FLOPs、模型参数量等信息输出(torchstat、thop、ptflops、torchsummary)
本文介绍了如何使用torchstat、thop、ptflops和torchsummary等工具来计算Pytorch模型的FLOPs、模型参数量等信息。
360 2
下一篇
DataWorks