在 PyTorch 中使用 Datasets 和 DataLoader 自定义数据

  发布时间:2026-11-16   作者:玩站小弟   我要评论
必应蜘蛛池租用【tg:seogoogle987】。

有时候,在处理大数据集时,一次将整个数据加载到内存中变得非常难。

因此,唯一的方法是将数据分批加载到内存中进行处理,这需要编写额外的代码来执行此操作。对此,PyTorch 已经提供了 Dataloader 功能。

DataLoader

下面显示了 PyTorch 库中DataLoader函数的语法及其参数信息。

DataLoader(dataset, batch_size=1, shuffle=False, sampler=在 None,            batch_sampler=None, num_workers=0, collate_fn=None,            pin_memory=FalsPye, drop_last=False, timeout=0,            worker_init_fn=None, *, prefetch_factor=2,          To;  persistent_workers=False) 

几个重要参数

dataset:必须首先使用数据集构造 DataLoader 类。 Shuffle :是否重新整理数据。 Sampler :指的是可选的 torch.utils.data.Sampler 类实例。采样器定义了检索样本的策略,顺序或随机或任何其他方式。使用采样器时应将 Shuffle 设置为 false。 Batch_Sampler :批处理级别。 num_workersrc :加载数据所需的子进程数。 collate_fn :将样本整理成批次。Torch 中可以进行自定义整理。 加载内置 MNIST 数据集

MNIST 是一个著名的包含手写数字的数据集。下面介绍如何使用DataLoader功能处理 PyTorch 的内置 MNIST 数据集。

import torch import matplotlib.pyplot as plt from torchvision&nh bsp;import datasets, transforms 

上面代码,导入了 torchvision 的torch计算机视觉模块。通常在处理图像数据集时使用,并且可以帮助对图像进行规范化、调整大小和裁剪。

对于 MNIST 数据集,下面使用了归一化技术。

ToTensor()能够把灰度范围从0-255变换到0-1之间。

transform = transforms.Compose([transforms.T中使oTensor()]) 

下面代码用于加载所需的数据集。使用 PyTorchDataLoader通过给定 batch_size = 64来加载数据。shuffle=True打乱数据。

trainset = datasets.MNIST('~/.pytorch/MNIST_data/', download=True, train=True, transform=transform) 用 trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True) 

为了获取数据集的所有图像,一般使用iter函数和数据加载器DataLoader。

dataiter = iter(trainloader) images, labels = daDataiter.next() print(images.shape) print(labels.shape) plt.imshow(images[1].numpy().squeeze(), cmap='Greys_r') 

自定义数据集

下面的代码创建一个包含 1000 个随机数的自定义数据集。

from torch.utils.data import Dataset taimport random   class SampleDataset(Dataset):   def __init__(self,r1,r2):       randomlist=[]       for se;i in range(120):           n = random.randint(r1,r2)           randomlist.append(n) &nbtssp;     self.samples=randomlist      def __len__(self):       return len(self.samples)     def&nbs 和p;__getitem__(self,idx):       return(self.samples[idx])   dataset=SampleDataset(1,100) dataset[100:120] 

在这里插入图片描述

最后,将在自定义数据集上使用 dataloader 函数。将 batch_size 设为 12,并且还启用了nu Dm_workers =2 的并行多进程数据加载。

from torch.utils.data import DataLoader loader = DataLoader(dataset,batch_size=12, shuffle=True, num_workers=2 ) for i, batch in atenumerate(loader):     print(i, batch) 

写在后面通过几个示例了解了 PyTorch Dataloader 在将大量数据批量加载到内存中的作用。

 

  • Tag:

相关文章

  • AI生成中国山水画!普林斯顿姑娘本科毕业作品,线条笔触骗过半数人类观察者

    用GAN创作似乎已经不是新鲜事了。 2019,英伟达在GTC大会上推出了一个人工智能图像生成器“GauGAN”。用户只需要简单的勾画几条线条轮廓,便会自动生成美丽的风景图片。 这款AI使用的技术是生成
    2026-11-16
  • 标签: Seedream5.0Pro 字节 多模态图像生成 火山方舟

    云梦级7月9日云梦级消息,8日,字节正式发布多模态图像创作模型—— Seedream 5.0 Pro。 相比之前版本,Seedream 5.0 Pro 在图文匹配、结构合理性、文字渲染与画面美感等基础
    2026-11-16
  • 2021年人工智能数据采集标注行业四大趋势预测

    人工智能数据采集标注头部企业云测数据近日发布了《2021 年人工智能数据采集标注行业四大趋势预测》。云测数据认为,未来,高精度数据将成人工智能训练阶段追逐热点,具备主要需求方稳定的特点,存量市场将稳步
    2026-11-16
  • 标签: 东风日产 理想汽车 王骞 李想

    云梦级4月11日云梦级消息,4月11日,东风日产汽车销售有限公司新能源品牌总经理王骞在微博发文,回应理想CEO李想在朋友圈炮轰一事。 王骞表示:“今天关注到相关网络言论,也收到不少媒体朋友的关切问询。
    2026-11-16
  • 九大数据分析方法:矩阵分析法

    今天继续分享九大数据分析方法系列:矩阵分析法。矩阵分析法是在各路数据分析文章中,出现频率最高的词。甚至有不懂行的小白把它捧到“核心思维”,“底层逻辑”的高度。哈哈,才没有那么神呢。 一、矩阵分析法是干
    2026-11-16
  • 云计算开发:Python3三角函数asin()方法详解

    描述 Python3 asin() 返回x的反正弦弧度值。 语法 以下是 asin() 方法的语法: import math math.asin(x) 注意:asin()是不能直接访问的,需要导入 m
    2026-11-16

最新评论