发布者认证信息(营业执照和身份证)未完善,请登录后完善信息登录
 终于找到在 PyTorch 中使用 Datasets 和 DataLoader 自定义数据 - 三农网
Hi,你好,欢迎来到三农网
  • 产品
  • 求购
  • 公司
  • 展会
  • 招商
  • 资讯
当前位置: 首页 » 资讯 » 三农时评 找商家、找信息优选VIP,安全更可靠!
终于找到在 PyTorch 中使用 Datasets 和 DataLoader 自定义数据
发布日期:2021-11-19 22:42:15  浏览次数:25

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

因此,唯一的方法是将数据分批加载到内存中进行处理,这需要编写额外的代码来执行此操作。对此,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=False, drop_last=False, timeout=0,            worker_init_fn=None, *, prefetch_factor=2,            persistent_workers=False) 

几个重要参数

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

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

import torch import  as plt from torchvision import datasets, transforms 

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

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

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

transform = ([()]) 

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

trainset = ('~/.pytorch/MNIST_data/', download=True, train=True, transform=transform) trainloader = .DataLoader(trainset, batch_size=64, shuffle=True) 

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

dataiter = iter(trainloader) images, labels = () print() print() (images[1].numpy().squeeze(), cmap='Greys_r') 

自定义数据集

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

from  import Dataset import random   class SampleDataset(Dataset):   def __init__(self,r1,r2):       randomlist=[]       for i in range(120):           n = (r1,r2)           (n)       =randomlist      def __len__(self):       return len()     def __getitem__(self,idx):       return([idx])   dataset=SampleDataset(1,100) dataset[100:120] 

在这里插入图片描述

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

from  import DataLoader loader = DataLoader(dataset,batch_size=12, shuffle=True, num_workers=2 ) for i, batch in enumerate(loader):     print(i, batch) 

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

 

VIP企业最新发布
全站最新发布
最新VIP企业
背景开启

三农网是一个开放的平台,信息全部为用户自行注册发布!并不代表本网赞同其观点或证实其内容的真实性,需用户自行承担信息的真实性,图片及其他资源的版权责任! 本站不承担此类作品侵权行为的直接责任及连带责任。

如若本网有任何内容侵犯您的权益,请联系 QQ: 1130861724

网站首页 | 实时热点 | 侵权删除 | 付款方式 | 联系方式 | 法律责任 | 网站地图 ©2022 zxb2b.com 三农网,中国大型农产品交易电商平台 鄂公网安备42018502006996 SITEMAPS | 鄂ICP备14015623号-20

返回顶部