paint-brush
你需要知道的 11 个用于计算机视觉的 Torchvision 数据集经过@datasets
7,830 讀數
7,830 讀數

你需要知道的 11 个用于计算机视觉的 Torchvision 数据集

太長; 讀書

Torchvision 提供对专为计算机视觉任务设计的预构建数据集、模型和转换的访问。数据集经过预处理、标记并组织成可以轻松加载和使用的格式。 Torchvision 还支持 CPU 和 GPU 加速,使其成为开发计算机视觉应用程序的灵活而强大的工具。
featured image - 你需要知道的 11 个用于计算机视觉的 Torchvision 数据集
Open Datasets Compiled by HackerNoon HackerNoon profile picture

计算机视觉是一个正在经历显着增长的领域,并且有许多实际应用,从自动驾驶汽车到面部识别系统。然而,该领域的主要挑战之一是获得高质量的数据集来训练机器学习模型。


为了应对这一挑战,torchvision 提供了对专为计算机视觉任务设计的预构建数据集、模型和转换的访问。 Torchvision 还支持 CPU 和 GPU 加速,使其成为开发计算机视觉应用程序的灵活而强大的工具。

什么是“Torchvision 数据集”?

Torchvision 数据集是计算机视觉中常用的流行数据集的集合,用于开发和测试机器学习模型。借助 torchvision 数据集,开发人员可以在一系列任务上训练和测试他们的机器学习模型,例如图像分类、对象检测和分割。

数据集也经过预处理、标记和组织成可以轻松加载和使用的格式。

Torchvision 数据集列表

  1. MNIST
  2. CIFAR-10
  3. CIFAR-100
  4. 图像网
  5. 可可
  6. 时尚-MNIST
  7. SVHN
  8. STL-10
  9. 名人A
  10. 帕斯卡挥发性有机化合物
  11. Places365

1. MNIST

这个 torchvision 数据集很受欢迎,广泛应用于机器学习和计算机视觉领域。它由 70,000 张手写数字 0-9 的灰度图像组成,其中 60,000 张图像用于训练,10,000 张图像用于测试。每张图片的大小为 28x28 像素,并有一个相应的标签来表示它代表的是哪些数字。


要访问此数据集,您可以直接从格格或者使用 torchvision 加载数据集:


 import torchvision.datasets as datasets # Load the training dataset train_dataset = datasets.MNIST(root='data/', train=True, transform=None, download=True) # Load the testing dataset test_dataset = datasets.MNIST(root='data/', train=False, transform=None, download=True)


使用 PyTorch torchvision 包加载 MNIST 数据集的代码。从https://pytorch.org/vision/stable/generated/torchvision.datasets.MNIST.html#torchvision.datasets.MNIST于 20/3/2023 检索


MNIST 数据集的表示

2. CIFAR-10

CIFAR-10 数据集包含 10 个类别的 60,000 张 32x32 彩色图像,每个类别有 6,000 张图像。它总共有 50,000 张训练图像和 10,000 张测试图像,进一步分为五个训练批次和一个测试批次,每个批次有 10,000 张图像。


这个数据集可以从下载格格,或使用 torchvision 在此处加载:


 import torch import torchvision import torchvision.transforms as transforms transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2) testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)


请注意,您可以根据需要调整数据加载器的批处理大小和工作进程数。


使用 PyTorch torchvision 包加载 CIFAR-10 数据集的代码。于 20/3/2023 从https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR10.html#torchvision.datasets.CIFAR10检索。

3. CIFAR-100

CIFAR-100 数据集有 60,000 张(50,000 张训练图像和 10,000 张测试图像)32x32 彩色图像,分为 100 个类别,每个类别有 600 张图像。这 100 个类被分为 20 个超类,用细标签表示它的类,用粗标签表示它所属的超类。


要从 Kaggle 下载 torchvision 数据集,请访问 Kaggle网站并按照那里提供的说明进行操作。或者,如果您更喜欢使用 torchvision 库加载数据集,您可以这样做:


 import torchvision.datasets as datasets import torchvision.transforms as transforms # Define transform to normalize data transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]) ]) # Load CIFAR-100 train and test datasets trainset = datasets.CIFAR100(root='./data', train=True, download=True, transform=transform) testset = datasets.CIFAR100(root='./data', train=False, download=True, transform=transform) # Create data loaders for train and test datasets trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True) testloader = torch.utils.data.DataLoader(testset, batch_size=64, shuffle=False)


使用 PyTorch torchvision 包加载 CIFAR-100 数据集的代码。于 20/3/2023 从https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR100.html#torchvision.datasets.CIFAR100检索。

4. 图像网

torchvision 中的 ImageNet 数据集包含大约 120 万张训练图像、50,000 张验证图像和 100,000 张测试图像。数据集中的每张图像都标有 1,000 个类别之一,例如“猫”、“狗”、“汽车”、“飞机”等。


要下载此 torchvision 数据集,您必须访问网站或加载 torchvision:


 import torchvision.datasets as datasets import torchvision.transforms as transforms # Set the path to the ImageNet dataset on your machine data_path = "/path/to/imagenet" # Create the ImageNet dataset object with custom options imagenet_train = datasets.ImageNet( root=data_path, split='train', transform=transforms.Compose([ transforms.Resize(256), transforms.RandomCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]), download=False ) imagenet_val = datasets.ImageNet( root=data_path, split='val', transform=transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]), download=False ) # Print the number of images in the training and validation sets print("Number of images in the training set:", len(imagenet_train)) print("Number of images in the validation set:", len(imagenet_val))


使用 PyTorch torchvision 包加载 ImageNet 数据集的代码。于 2023 年 3 月 21 日从https://pytorch.org/vision/stable/generated/torchvision.datasets.ImageNet.html#torchvision.datasets.ImageNet检索。


ImageNet 数据集的表示

5. 可可女士

Microsoft Common Objects in Context(MS Coco) 数据集包含 328,000 张日常物体和人类的高质量视觉图像,通常用作比较实时物体检测算法性能的标准。


要下载此 torchvision 数据集,请访问网站或加载 torchvision:


 import torch from torchvision import datasets, transforms # Define transformation transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Load training dataset train_dataset = datasets.CocoDetection(root='/path/to/dataset/train2017', annFile='/path/to/dataset/annotations/instances_train2017.json', transform=transform) train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True) # Load validation dataset val_dataset = datasets.CocoDetection(root='/path/to/dataset/val2017', annFile='/path/to/dataset/annotations/instances_val2017.json', transform=transform) val_loader = torch.utils.data.DataLoader(val_dataset, batch_size=32, shuffle=False)


确保将 /path/to/dataset 占位符替换为数据集目录的实际路径。此外,调整 batch_size 参数以满足您的需要。


使用 PyTorch torchvision 包加载 MS Coco 数据集的代码。从https://pytorch.org/vision/stable/generated/torchvision.datasets.CocoDetection.html#torchvision.datasets.CocoDetection于 21/3/2023 检索

6. 时尚-MNIST

Fashion MNIST 数据集由 Zalando Research 创建,用于替代原始 MNIST 数据集。 Fashion MNIST 数据集由 70,000 张灰度图像(训练集 60,000 张和测试集 10,000 张)组成。


图片大小为 28x28 像素,代表 10 种不同类别的服装,包括 T 恤/上衣、裤子、套头衫、连衣裙、外套、凉鞋、衬衫、运动鞋、包和踝靴。它类似于原始 MNIST 数据集,但由于服装项目的复杂性和多样性更高,因此分类任务更具挑战性。


这个 torchvision 数据集可以从下载格格,或使用此代码加载:


 import torch import torchvision import torchvision.transforms as transforms # Define transformations transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) # Load the dataset trainset = torchvision.datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform) testset = torchvision.datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform) # Create data loaders trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2) testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)


使用 PyTorch torchvision 包加载 Fashion-MNIST 数据集的代码。于 2023 年 3 月 21 日从https://pytorch.org/vision/stable/generated/torchvision.datasets.FashionMNIST.html#torchvision.datasets.FashionMNIST检索。

7. SVHN

SVHN (Street View House Numbers) 数据集是从 Google 的街景图像派生的图像数据集,它由从街道图像中截取的门牌号裁剪图像组成。它以包含所有门牌号及其边界框的完整格式和仅包含门牌号的裁剪格式提供。完整格式通常用于对象检测任务,而裁剪格式通常用于分类任务。


SVHN 数据集也包含在 torchvision 包中,它包含用于训练的 73,257 张图像、用于测试的 26,032 张图像和用于额外训练数据的 531,131 张附加图像。


要下载这个 torchvision 数据集,你可以去格格或者你可以在这里加载它:


 import torchvision import torch # Load the train and test sets train_set = torchvision.datasets.SVHN(root='./data', split='train', download=True, transform=torchvision.transforms.ToTensor()) test_set = torchvision.datasets.SVHN(root='./data', split='test', download=True, transform=torchvision.transforms.ToTensor()) # Create data loaders train_loader = torch.utils.data.DataLoader(train_set, batch_size=64, shuffle=True) test_loader = torch.utils.data.DataLoader(test_set, batch_size=64, shuffle=False)


使用 PyTorch torchvision 包加载 SVHN 数据集的代码。于 22/3/2023 从https://pytorch.org/vision/stable/generated/torchvision.datasets.SVHN.html#torchvision.datasets.SVHN检索。

8. STL-10

STL-10 数据集是一个图像识别数据集,由 10 个类组成,总共约有 6,000+ 张图像。 STL-10 代表“Standard Training and Test Set for Image Recognition-10 classes”,数据集中的 10 个类是:


  • 飞机
  • 鹿
  • 卡车


要访问此数据集,您可以直接从格格或者使用 torchvision 加载数据集:


 import torchvision.datasets as datasets import torchvision.transforms as transforms # Define the transformation to apply to the data transform = transforms.Compose([ transforms.ToTensor(), # Convert PIL image to PyTorch tensor transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) # Normalize the data ]) # Load the STL-10 dataset train_dataset = datasets.STL10(root='./data', split='train', download=True, transform=transform) test_dataset = datasets.STL10(root='./data', split='test', download=True, transform=transform)


使用 PyTorch torchvision 包加载 STL-10 数据集的代码。 2023 年 3 月 22 日从https://pytorch.org/vision/stable/generated/torchvision.datasets.STL10.html#torchvision.datasets.STL10检索。

9. 名人A

这个 torchvision 数据集是一个流行的大规模人脸属性数据集,包含超过 200,000 张名人图像。它于 2015 年由香港中文大学的研究人员首次发布。CelebA 中的图像包含 40 种面部属性,例如年龄、头发颜色、面部表情和性别。此外,这些图像是从互联网上检索到的,涵盖了广泛的面部外观,包括不同的种族、年龄和性别。每个图像中面部位置的边界框注释,以及眼睛、鼻子和嘴巴的 5 个标志点。


你可以下载这个数据集格格或使用此代码加载它:


 import torchvision.datasets as datasets import torchvision.transforms as transforms transform = transforms.Compose([ transforms.CenterCrop(178), transforms.Resize(128), transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) ]) celeba_dataset = datasets.CelebA(root='./data', split='train', transform=transform, download=True)


使用 PyTorch torchvision 包加载 CelebA 数据集的代码。 2023 年 3 月 22 日从https://pytorch.org/vision/stable/generated/torchvision.datasets.CelebA.html#torchvision.datasets.CelebA检索。

10. 帕斯卡VOC

VOC 数据集(视觉对象类)于 2005 年作为 PASCAL VOC 挑战赛的一部分首次推出,旨在推进视觉识别领域的最新技术水平。它由 20 个不同对象类别的图像组成,包括动物、车辆和常见的家居用品。这些图像中的每一个都用图像中对象的位置和分类进行了注释。注释包括边界框和像素级分割掩码。


数据集分为两个主要集:训练集和验证集。训练集包含大约 5,000 张带有注释的图像,而验证集包含大约 5,000 张没有注释的图像。此外,该数据集还包括一个包含大约 10,000 张图像的测试集,但该集的注释未公开。


要访问最近的数据集,您可以从网站,格格或将其加载到 torchvision 中:


 import torch import torchvision from torchvision import transforms # Define transformations to apply to the images transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Load the train and validation datasets train_dataset = torchvision.datasets.VOCDetection(root='./data', year='2007', image_set='train', transform=transform) val_dataset = torchvision.datasets.VOCDetection(root='./data', year='2007', image_set='val', transform=transform) # Create data loaders train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True) val_loader = torch.utils.data.DataLoader(val_dataset, batch_size=32, shuffle=False)


使用 PyTorch torchvision 包加载 PASCAL VOC 数据集的代码。 2023 年 3 月 22 日从https://pytorch.org/vision/stable/generated/torchvision.datasets.VOCDetection.html#torchvision.datasets.VOCDetection检索。

11. Places365

Places365 数据集是一个大规模的场景识别数据集,拥有超过 180 万张图像,涵盖 365 个场景类别。 Places365 标准数据集包含大约 180 万张图像,而 Places365-Challenge 数据集包含 50,000 张额外的验证图像,这些图像对识别模型更具挑战性。


要访问此数据集,您可以使用格格或在此处加载 torchvision:


 import torch import torchvision from torchvision import transforms # Define transformations to apply to the images transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Load the train and validation datasets train_dataset = torchvision.datasets.Places365(root='./data', split='train-standard', transform=transform) val_dataset = torchvision.datasets.Places365(root='./data', split='val', transform=transform) # Create data loaders train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True) val_loader = torch.utils.data.DataLoader(val_dataset, batch_size=32, shuffle=False)


使用 PyTorch torchvision 包加载 Places365 数据集的代码。 2023 年 3 月 22 日从https://pytorch.org/vision/stable/generated/torchvision.datasets.Places365.html#torchvision.datasets.Places365检索。


Places365 数据集的表示

Torchvision 数据集的常见用例

MNIST - 该数据集常用于图像分类任务,尤其是手写数字识别。


CIFAR-10CIFAR-100 - 这些数据集通常用于图像分类任务,特别是用于对象识别。


图像网- 这个 torchvision 数据集包含数以百万计的各种物体和动物的图像,通常用于物体识别任务。


可可女士- 此数据集通常用于对象检测、分割和字幕任务。


时尚-MNIST - 与 MNIST 类似,该数据集通常用于图像分类任务,尤其是时尚单品识别。


SVHN - 此数据集通常用于数字识别任务。它对于开发和测试在现实环境中识别数字的算法特别有用。


STL-10 - 这个 torchvision 数据集通常用于图像分类任务,特别是物体识别。


名人A - 该数据集通常用于面部识别和属性分类任务。它由各种面部表情、姿势和背景的图像组成。


帕斯卡挥发性有机化合物- 此数据集通常用于对象检测和分割任务。


Places365 - 此数据集通常用于场景识别任务。它由各种室内和室外场景的图像组成,例如卧室、海滩和办公室。

最后的想法

Torchvision 数据集通常用于训练和评估机器学习模型,例如计算机视觉应用中常用的卷积神经网络 (CNN)。


它们也可供任何人免费下载和使用。


本文的主图是通过HackerNoon 的 AI Stable Diffusion模型生成的,使用的提示是“数千张图像组织成小帧”。


更多数据集列表:

  1. Excel 数据集
  2. 凯拉斯数据集
  3. R 数据集
  4. PyTorch 数据集
  5. 拥抱数据集