PyTorch使用datasets.ImageFolder加载ImageNet数据集及数据集相关处理

PyTorch使用datasets.ImageFolder加载ImageNet数据集及数据集相关处理

1. 前言

Large Scale Visual Recognition Challenge (ILSVRC),大尺度视觉识别挑战是用于评估用于大尺度目标检测与目标分类的算法的一个大型图像竞赛。其数据集就是我们常说的ImageNet数据集,包括1000个类别共1281167张带注释(标签)的训练集图片,50000张验证集图片,以及100000张没有标签的测试集图片。ImageNet数据集算是至今为止检验一个神经网络分类性能的基准了。

这篇文章将介绍如何处理ImageNet数据集,以及如何使用torchvision.datasets.ImageFolder来加载该数据集。注意有个torchvision.datasets.ImageNet的api,原本也是应该可以加载此数据集的,不过我一直没使用成功过,也可能是因为我在windows上使用的原因(Linux下有待验证),还有需要注意的是ImageNet数据集现在不开源了,所以download参数是不可用的。

2. ImageNet数据集处理

2.1 数据下载 (ILSVRC-2012)

数据集的下载当然是要在官网上下载了,但是ImageNet数据集现在不开源了,不开放给商业应用,只允许用于学术研究,因此官网上下载要求使用教育机构的邮箱(一般后缀是.edu.cn)进行申请,然后官网会有相关人员审查,最后才可以在官网上下载原始图片(original images),具体的申请过程自己去官网一步一步来吧,填个邮箱,填个机构就可以的了。

注意:我用edu.cn后缀的邮箱申请了很多次,都没成功,从描述上看感觉就没人受理,最后还是从度娘中下载的。

因此,在这里,我也提供了网盘下载地址(提取码:v55l),方便大家在官网上下载不了,可以从这里直接下载。

2.2 数据处理

下载好后的数据集应该是如下图所示,其中data_prep_sh_files文件夹和readme.txt是我自己添加的,data_prep_sh_files文件夹包含了处理trian/val/test集的sh脚本,readme.txt是具体操作的说明, caffe_ilsvrc12.tar.gz压缩文件是网上下载的caffe版标签,剩下的是原始文件

在这里插入图片描述
相关处理可以打开readme.txt文件查看(其实就是如何解压文件,放置文件的过程),主要的操作都写在data_prep_sh_files文件夹中的对应.sh文件中了,可以打开查看怎么实现的,Windows有Git的话在命令行里实现会很方便,当然也可以手动操作,这里就不描述了(麻烦自己看一下文件对应理解一下吧),如下图:
在这里插入图片描述

补充注意:这里有个坑,val集的DataLoader的shuffle参数一定要设置为True,才能正确加载标签,否则都是0

2.3 PyTorch加载数据集

直接上相关部分的代码,没什么好解释的,(毕竟我也没搞懂为毛没有标签,DataLoader还能够加载到标签,可能是子文件夹名的相关处理吧)。

phases = ["train", "val"]
data_sets = {}
data_loaders = {}
for p in phases:
	data_sets[p] = datasets.ImageFolder(
	                data_dirs[p],
	                transform=data_transforms[p],
	            )
            
	data_loaders[p] = DataLoader(
	            data_sets[p], batch_size=batch_size,
	            shuffle=True,
	            num_workers=num_workers, pin_memory=pin_memory,
	            sampler=None
	        )

3. 总结

总结一下,其实用PyTorch加载不难,就两步,torchvision.datasets.ImageFoldertorch.utils.data.DataLoader 就可以,关键还是前面的数据准备部分。

  • 26
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
### 回答1: torchvision.datasets.imagenet是PyTorch中的一个数据集模块,用于加载ImageNet数据集ImageNet是一个大规模的视觉识别数据集,包含超过100万张带有标签的图像,用于训练和测试图像分类算法。这个数据集模块提供了一些常用的函数,例如ImageFolderDatasetFolder,可以方便地加载处理ImageNet数据集。 ### 回答2: torchvision.datasets.imagenet是PyTorch中用于加载ImageNet数据集的模块,该数据集是一个大规模的视觉识别任务数据集,包含了1400万张图像和1000个类别,是计算机视觉领域最常用的数据集之一。 torchvision.datasets.imagenet提供了两种数据预处理方式:(1)train-和test-数据集处理;(2)标准的数据预处理工具,例如RandomResizedCrop,RandomHorizontalFlip等,这些数据预处理方法可以帮助我们更好的处理数据集中的多样性。 torchvision.datasets.imagenet可以通过指定参数,自定义数据集的大小、数量、颜色范围等,使得其适用于不同场景下的数据需求。此外,PyTorch中还提供了一些与ImageNet数据集相关的算法,例如AlexNet、VGG、ResNet等,这些算法可以直接使用这些数据集,并快速载入。 总之,torchvision.datasets.imagenet为我们提供了快速、便捷的数据集处理方案,使得我们可以轻松地使用ImageNet数据集来进行深度学习、机器学习、计算机视觉相关领域的研究和开发。 ### 回答3: torchvision.datasets.imagenet是PyTorch的一个库,提供ImageNet数据集的API。ImageNet是一个大规模的图像数据库,其中包含超过1400万张图像,并按照类别注释。这些类别涵盖了各种各样的物体、场景、人物等,包括但不限于动物、交通工具、自然风景、建筑、人脸等。 在使用torchvision.datasets.imagenet时,可以从数据库中获取训练集和验证集。这两个数据集都包含1000个不同的类别,每个类别包含1000张图像。其中训练集的图像数量达到了1.2万张,而验证集的数量达到了5万张。每张图像都是标准尺寸的RGB图像,尺寸为224x224。 在使用这个库时,需要先下载ImageNet数据集PyTorch提供了一个方便的脚本来下载和解压缩数据集。下载完成后,就可以通过torchvision.datasets.imagenet的API来访问数据集了。 使用ImageNet进行训练的模型表现很好,并在许多计算机视觉任务上达到了最先进的性能。除此之外,ImageNet还被广泛用于开发和测试各种深度学习算法。 总之,torchvision.datasets.imagenet是PyTorch中一个非常重要的库,让我们能够方便地使用ImageNet数据集ImageNet是一种非常有用的资源,尤其是对于那些需要大量数据来训练深度学习模型的人来说。使用ImageNet数据集可以帮助我们更好地理解分类算法,并为我们解决实际问题提供更好的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值