返回顶部
首页 > 资讯 > 精选 >PyTorch中torch.utils.data.DataLoader怎么使用
  • 202
分享到

PyTorch中torch.utils.data.DataLoader怎么使用

2023-07-02 12:07:34 202人浏览 独家记忆
摘要

这篇文章主要介绍“PyTorch中torch.utils.data.DataLoader怎么使用”,在日常操作中,相信很多人在PyTorch中torch.utils.data.DataLoader怎么使用问题上存在疑惑,小编查阅了各式资料,

这篇文章主要介绍“PyTorch中torch.utils.data.DataLoader怎么使用”,在日常操作中,相信很多人在PyTorch中torch.utils.data.DataLoader怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PyTorch中torch.utils.data.DataLoader怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、torch.utils.data.DataLoader 简介

作用:torch.utils.data.DataLoader 主要是对数据进行 batch 的划分。

数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集。

在训练模型时使用到此函数,用来 把训练数据分成多个小组 ,此函数 每次抛出一组数据 。直至把所有的数据都抛出。就是做一个数据的初始化。

好处:

使用DataLoader的好处是,可以快速的迭代数据。

用于生成迭代数据非常方便。

注意:

除此之外,特别要注意的是输入进函数的数据一定得是可迭代的。如果是自定的数据集的话可以在定义类中用def__len__、def__getitem__定义。

二、实例

BATCH_SIZE 刚好整除数据量

"""    批训练,把数据变成一小批一小批数据进行训练。    DataLoader就是用来包装所使用的数据,每次抛出一批数据"""import torchimport torch.utils.data as DataBATCH_SIZE = 5       # 批训练的数据个数x = torch.linspace(1, 10, 10)   # 训练数据print(x)y = torch.linspace(10, 1, 10)   # 标签print(y)# 把数据放在数据库中torch_dataset = Data.TensorDataset(x, y)  # 对给定的 tensor 数据,将他们包装成 datasetloader = Data.DataLoader(    # 从数据库中每次抽出batch size个样本    dataset=torch_dataset,       # torch TensorDataset fORMat    batch_size=BATCH_SIZE,       # mini batch size    shuffle=True,                # 要不要打乱数据 (打乱比较好)    num_workers=2,               # 多线程来读数据)def show_batch():    for epoch in range(3):        for step, (batch_x, batch_y) in enumerate(loader):            # training            print("steop:{}, batch_x:{}, batch_y:{}".format(step, batch_x, batch_y))show_batch()

输出结果:

tensor([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])
tensor([10.,  9.,  8.,  7.,  6.,  5.,  4.,  3.,  2.,  1.])
steop:0, batch_x:tensor([10.,  1.,  3.,  7.,  6.]), batch_y:tensor([ 1., 10.,  8.,  4.,  5.])
steop:1, batch_x:tensor([8., 5., 4., 9., 2.]), batch_y:tensor([3., 6., 7., 2., 9.])
steop:0, batch_x:tensor([ 9.,  3., 10.,  1.,  5.]), batch_y:tensor([ 2.,  8.,  1., 10.,  6.])
steop:1, batch_x:tensor([2., 6., 8., 4., 7.]), batch_y:tensor([9., 5., 3., 7., 4.])
steop:0, batch_x:tensor([ 2., 10.,  9.,  6.,  1.]), batch_y:tensor([ 9.,  1.,  2.,  5., 10.])
steop:1, batch_x:tensor([8., 3., 4., 7., 5.]), batch_y:tensor([3., 8., 7., 4., 6.])

说明:共有 10 条数据,设置 BATCH_SIZE 为 5 来进行划分,能划分为 2 组(steop 为 0 和 1)。这两组数据互斥。

BATCH_SIZE 不整除数据量:会输出余下所有数据

将上述代码中的 BATCH_SIZE 改为 4 :

"""    批训练,把数据变成一小批一小批数据进行训练。    DataLoader就是用来包装所使用的数据,每次抛出一批数据"""import torchimport torch.utils.data as DataBATCH_SIZE = 4       # 批训练的数据个数x = torch.linspace(1, 10, 10)   # 训练数据print(x)y = torch.linspace(10, 1, 10)   # 标签print(y)# 把数据放在数据库中torch_dataset = Data.TensorDataset(x, y)  # 对给定的 tensor 数据,将他们包装成 datasetloader = Data.DataLoader(    # 从数据库中每次抽出batch size个样本    dataset=torch_dataset,       # torch TensorDataset format    batch_size=BATCH_SIZE,       # mini batch size    shuffle=True,                # 要不要打乱数据 (打乱比较好)    num_workers=2,               # 多线程来读数据)def show_batch():    for epoch in range(3):        for step, (batch_x, batch_y) in enumerate(loader):            # training            print("steop:{}, batch_x:{}, batch_y:{}".format(step, batch_x, batch_y))show_batch()

输出结果:

tensor([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])
tensor([10.,  9.,  8.,  7.,  6.,  5.,  4.,  3.,  2.,  1.])
steop:0, batch_x:tensor([1., 5., 3., 2.]), batch_y:tensor([10.,  6.,  8.,  9.])
steop:1, batch_x:tensor([7., 8., 4., 6.]), batch_y:tensor([4., 3., 7., 5.])
steop:2, batch_x:tensor([10.,  9.]), batch_y:tensor([1., 2.])
steop:0, batch_x:tensor([ 7., 10.,  5.,  2.]), batch_y:tensor([4., 1., 6., 9.])
steop:1, batch_x:tensor([9., 1., 6., 4.]), batch_y:tensor([ 2., 10.,  5.,  7.])
steop:2, batch_x:tensor([8., 3.]), batch_y:tensor([3., 8.])
steop:0, batch_x:tensor([10.,  3.,  2.,  8.]), batch_y:tensor([1., 8., 9., 3.])
steop:1, batch_x:tensor([1., 7., 5., 9.]), batch_y:tensor([10.,  4.,  6.,  2.])
steop:2, batch_x:tensor([4., 6.]), batch_y:tensor([7., 5.])

说明:共有 10 条数据,设置 BATCH_SIZE 为 4 来进行划分,能划分为 3 组(steop 为 0 、1、2)。分别有 4、4、2 条数据。

到此,关于“PyTorch中torch.utils.data.DataLoader怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: PyTorch中torch.utils.data.DataLoader怎么使用

本文链接: https://lsjlt.com/news/341677.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PyTorch中torch.utils.data.DataLoader怎么使用
    这篇文章主要介绍“PyTorch中torch.utils.data.DataLoader怎么使用”,在日常操作中,相信很多人在PyTorch中torch.utils.data.DataLoader怎么使用问题上存在疑惑,小编查阅了各式资料,...
    99+
    2023-07-02
  • PyTorch中torch.utils.data.DataLoader实例详解
    1、dataset:(数据类型 dataset) 输入的数据类型,这里是原始数据的输入。PyTorch内也有这种数据结构。 2、batch_size:(数据类型 int) 批训练数...
    99+
    2024-04-02
  • PyTorch中torch.utils.data.DataLoader简单介绍与使用方法
    目录一、torch.utils.data.DataLoader 简介二、实例参考链接总结一、torch.utils.data.DataLoader 简介 作用:torch.utils...
    99+
    2024-04-02
  • Python中Pytorch怎么使用
    这篇文章将为大家详细讲解有关Python中Pytorch怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、TensorTensor(张量是一个统称,其中包括很多类型):0阶张量:标量、常数、0-D...
    99+
    2023-06-15
  • pytorch中nn.Dropout怎么使用
    小编给大家分享一下pytorch中nn.Dropout怎么使用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!看代码吧~Class USeDropout(nn.Module):   &...
    99+
    2023-06-15
  • pytorch中[..., 0]怎么使用
    这篇文章将为大家详细讲解有关pytorch中[..., 0]怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在看程序的时候看到了x[…, 0]的语句不是很理解,后来自己做实验略微了解,以此记录方便自...
    99+
    2023-06-15
  • Pytorch中怎么使用TensorBoard
    本文小编为大家详细介绍“Pytorch中怎么使用TensorBoard”,内容详细,步骤清晰,细节处理妥当,希望这篇“Pytorch中怎么使用TensorBoard”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一...
    99+
    2023-07-02
  • pytorch中nn.RNN()怎么使用
    这篇文章主要介绍“pytorch中nn.RNN()怎么使用”,在日常操作中,相信很多人在pytorch中nn.RNN()怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pytorch中nn.RNN()怎...
    99+
    2023-07-04
  • pytorch中with torch.no_grad()怎么使用
    本篇内容主要讲解“pytorch中with torch.no_grad()怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pytorch中with torch.no_g...
    99+
    2023-06-29
  • PyTorch中的nn.Embedding怎么使用
    这篇“PyTorch中的nn.Embedding怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PyTorch中的nn...
    99+
    2023-07-02
  • pytorch中Parameter函数怎么使用
    这篇文章主要介绍了pytorch中Parameter函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇pytorch中Parameter函数怎么使用文章都会有所收获,下面我们一起来看看吧。用法介绍pyt...
    99+
    2023-06-29
  • Pytorch中的torch.distributions库怎么使用
    本文小编为大家详细介绍“Pytorch中的torch.distributions库怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Pytorch中的torch.distributions库怎么使用”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-07-05
  • PyTorch中的nn.Module类怎么使用
    这篇文章主要讲解了“PyTorch中的nn.Module类怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PyTorch中的nn.Module类怎么使用”吧!PyTorch nn.Mo...
    99+
    2023-07-05
  • PyTorch中torch.matmul()函数怎么使用
    这篇文章主要介绍了PyTorch中torch.matmul()函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PyTorch中torch.matmul()函数怎么使用文章都会有所收获,下面我们一起来看...
    99+
    2023-07-06
  • Pytorch怎么使用transforms
    这篇文章主要介绍Pytorch怎么使用transforms,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先,这次讲解的tansforms功能,通俗地讲,类似于在计算机视觉流程里的图像预处理部分的数据增强。trans...
    99+
    2023-06-22
  • PyTorch torch.utils.data.Dataset怎么使用
    本篇内容主要讲解“PyTorch torch.utils.data.Dataset怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PyTorch torch.utils...
    99+
    2023-07-05
  • Pytorch nn.Dropout怎么使用
    这篇文章主要介绍“Pytorch nn.Dropout怎么使用”,在日常操作中,相信很多人在Pytorch nn.Dropout怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pyt...
    99+
    2023-07-05
  • BCELoss和BCEWithLogitsLoss怎么在Pytorch中使用
    BCELoss和BCEWithLogitsLoss怎么在Pytorch中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。BCELoss在图片多标签分类时,如果3张图片分3类,...
    99+
    2023-06-15
  • 怎么在pytorch中使用float64训练
    怎么在pytorch中使用float64训练?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。原因在于:使用float16训练模型,模型效果会有损失,而使用double(float...
    99+
    2023-06-15
  • Optimizer与optimizer.step()怎么在pytorch中使用
    今天就跟大家聊聊有关Optimizer与optimizer.step()怎么在pytorch中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当我们想指定每一层的学习率时:opti...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作