paint-brush
11 bộ dữ liệu Torchvision cho thị giác máy tính bạn cần biếttừ tác giả@datasets
7,640 lượt đọc
7,640 lượt đọc

11 bộ dữ liệu Torchvision cho thị giác máy tính bạn cần biết

từ tác giả Open Datasets Compiled by HackerNoon13m2023/03/26
Read on Terminal Reader

dài quá đọc không nổi

Torchvision cung cấp quyền truy cập vào bộ dữ liệu dựng sẵn, mô hình và biến đổi được thiết kế đặc biệt cho các tác vụ thị giác máy tính. Các bộ dữ liệu được xử lý trước, dán nhãn và sắp xếp thành các định dạng có thể dễ dàng tải và sử dụng. Torchvision cũng hỗ trợ tăng tốc cả CPU và GPU, làm cho nó trở thành một công cụ linh hoạt và mạnh mẽ để phát triển các ứng dụng thị giác máy tính.
featured image - 11 bộ dữ liệu Torchvision cho thị giác máy tính bạn cần biết
Open Datasets Compiled by HackerNoon HackerNoon profile picture

Thị giác máy tính là một lĩnh vực có sự phát triển đáng kể và có nhiều ứng dụng thực tế, từ ô tô tự lái đến hệ thống nhận dạng khuôn mặt. Tuy nhiên, một trong những thách thức lớn trong lĩnh vực này là có được bộ dữ liệu chất lượng cao để huấn luyện các mô hình máy học.


Để giải quyết thách thức này, torchvision cung cấp quyền truy cập vào bộ dữ liệu dựng sẵn, mô hình và biến đổi được thiết kế đặc biệt cho các tác vụ thị giác máy tính. Torchvision cũng hỗ trợ tăng tốc cả CPU và GPU, làm cho nó trở thành một công cụ linh hoạt và mạnh mẽ để phát triển các ứng dụng thị giác máy tính.

“Bộ dữ liệu Torchvision” là gì?

Bộ dữ liệu Torchvision là tập hợp các bộ dữ liệu phổ biến thường được sử dụng trong thị giác máy tính để phát triển và thử nghiệm các mô hình máy học. Với bộ dữ liệu torchvision, các nhà phát triển có thể đào tạo và thử nghiệm các mô hình máy học của họ trên nhiều tác vụ, chẳng hạn như phân loại hình ảnh, phát hiện đối tượng và phân đoạn.

Các bộ dữ liệu cũng được xử lý trước, dán nhãn và sắp xếp thành các định dạng có thể dễ dàng tải và sử dụng.

Danh sách bộ dữ liệu Torchvision

  1. MNIST
  2. CIFAR-10
  3. CIFAR-100
  4. Hình ảnhNet
  5. COCO
  6. Thời trang-MNIST
  7. SVHN
  8. STL-10
  9. người nổi tiếng
  10. Pascal VOC
  11. Địa điểm365

1. MNIST

Bộ dữ liệu torchvision này phổ biến và được sử dụng rộng rãi trong các lĩnh vực máy học và thị giác máy tính. Nó bao gồm 70.000 hình ảnh thang độ xám của các chữ số viết tay từ 0–9, với 60.000 hình ảnh để đào tạo và 10.000 để kiểm tra. Mỗi hình ảnh có kích thước 28x28 pixel và có một nhãn tương ứng biểu thị các chữ số mà nó đại diện.


Để truy cập tập dữ liệu này, bạn có thể tải xuống trực tiếp từ kaggle hoặc tải tập dữ liệu bằng 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)


Mã để tải tập dữ liệu MNIST bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.MNIST.html#torchvision.datasets.MNIST ngày 20/3/2023 .


Một đại diện của bộ dữ liệu MNIST

2. CIFAR-10

Bộ dữ liệu CIFAR-10 bao gồm 60.000 hình ảnh màu 32x32 trong 10 lớp, với 6.000 hình ảnh mỗi lớp. Nó có tổng cộng 50.000 hình ảnh đào tạo và 10.000 hình ảnh kiểm tra, được chia thành năm đợt đào tạo và một đợt kiểm tra, mỗi đợt có 10.000 hình ảnh.


Bộ dữ liệu này có thể được tải xuống từ kaggle hoặc tải ở đây bằng 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)


Lưu ý rằng bạn có thể điều chỉnh kích thước lô và số lượng quy trình công nhân cho trình tải dữ liệu nếu cần.


Mã để tải tập dữ liệu CIFAR-10 bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR10.html#torchvision.datasets.CIFAR10 vào ngày 20/3/2023 .

3. CIFAR-100

Bộ dữ liệu CIFAR-100 có 60.000 (50.000 hình ảnh đào tạo và 10.000 hình ảnh thử nghiệm) hình ảnh màu 32x32 trong 100 lớp, với 600 hình ảnh mỗi lớp. 100 lớp được nhóm thành 20 siêu lớp, với một nhãn nhỏ để biểu thị lớp của nó và một nhãn thô để biểu thị siêu lớp mà nó thuộc về.


Để tải xuống bộ dữ liệu torchvision từ Kaggle, vui lòng truy cập Kaggle trang mạng và làm theo các hướng dẫn được cung cấp ở đó. Ngoài ra, nếu bạn muốn tải tập dữ liệu bằng thư viện torchvision, bạn có thể thực hiện việc này:


 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)


Mã để tải tập dữ liệu CIFAR-100 bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR100.html#torchvision.datasets.CIFAR100 vào ngày 20/3/2023 .

4. Hình ảnhNet

Bộ dữ liệu ImageNet trong torchvision chứa khoảng 1,2 triệu hình ảnh đào tạo, 50.000 hình ảnh xác thực và 100.000 hình ảnh thử nghiệm. Mỗi hình ảnh trong bộ dữ liệu được gắn nhãn với một trong 1.000 danh mục, chẳng hạn như "mèo", "chó", "ô tô", "máy bay", v.v.


Để tải xuống bộ dữ liệu torchvision này, bạn phải truy cập trang mạng hoặc tải trong 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))


Mã để tải tập dữ liệu ImageNet bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.ImageNet.html#torchvision.datasets.ImageNet vào ngày 3/21/2023 .


Một đại diện của bộ dữ liệu ImageNet

5. MS dừa

Bộ dữ liệu Microsoft Common Objects in Context(MS Coco) chứa 328.000 hình ảnh trực quan chất lượng cao về các vật thể và con người hàng ngày, thường được sử dụng làm tiêu chuẩn để so sánh hiệu suất của các thuật toán trong phát hiện đối tượng theo thời gian thực.


Để tải xuống bộ dữ liệu torchvision này, vui lòng truy cập trang mạng hoặc tải trong 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)


Đảm bảo thay thế trình giữ chỗ /path/to/dataset bằng đường dẫn thực đến thư mục tập dữ liệu của bạn. Ngoài ra, hãy điều chỉnh tham số batch_size để phù hợp với nhu cầu của bạn.


Mã để tải tập dữ liệu MS Coco bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.CocoDetection.html#torchvision.datasets.CocoDetection vào ngày 21/3/2023 .

6. Thời trang-MNIST

Bộ dữ liệu Fashion MNIST do Zalando Research tạo ra để thay thế cho bộ dữ liệu MNIST ban đầu. Bộ dữ liệu Fashion MNIST bao gồm 70.000 hình ảnh thang độ xám (tập huấn luyện 60.000 và tập kiểm tra 10.000) mặt hàng quần áo.


Hình ảnh có kích thước 28x28 pixel và đại diện cho 10 loại mặt hàng quần áo khác nhau, bao gồm áo phông/áo, quần tây, áo chui đầu, váy, áo khoác, xăng đan, áo sơ mi, giày thể thao, túi xách và bốt đến mắt cá chân. Nó tương tự như bộ dữ liệu MNIST ban đầu, nhưng với các nhiệm vụ phân loại khó khăn hơn do sự phức tạp và đa dạng hơn của các mặt hàng quần áo.


Bộ dữ liệu torchvision này có thể được tải xuống từ kaggle hoặc được tải bằng mã này:


 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)


Mã để tải bộ dữ liệu Fashion-MNIST bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.FashionMNIST.html#torchvision.datasets.FashionMNIST vào ngày 21/3/2023 .

7. SVHN

Bộ dữ liệu SVHN (Số nhà ở Chế độ xem phố) là một bộ dữ liệu hình ảnh bắt nguồn từ hình ảnh Chế độ xem phố của Google, bao gồm các hình ảnh số nhà đã cắt được lấy từ các hình ảnh cấp phố. Nó có sẵn ở định dạng đầy đủ với tất cả các số nhà và các hộp giới hạn của chúng và định dạng được cắt xén chỉ với các số nhà. Định dạng đầy đủ thường được sử dụng cho các nhiệm vụ phát hiện đối tượng, trong khi định dạng cắt xén thường được sử dụng cho các nhiệm vụ phân loại.


Bộ dữ liệu SVHN cũng được bao gồm trong gói torchvision và nó chứa 73.257 hình ảnh để đào tạo, 26.032 hình ảnh để thử nghiệm và 531.131 hình ảnh bổ sung cho dữ liệu đào tạo bổ sung.


Để tải xuống bộ dữ liệu torchvision này, bạn có thể truy cập kaggle hoặc bạn có thể tải nó ở đây:


 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)


Mã để tải tập dữ liệu SVHN bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.SVHN.html#torchvision.datasets.SVHN vào ngày 3/22/2023 .

số 8. STL-10

Bộ dữ liệu STL-10 là bộ dữ liệu nhận dạng hình ảnh bao gồm 10 lớp, với tổng số khoảng hơn 6.000 hình ảnh. STL-10 là viết tắt của “Bộ kiểm tra và đào tạo tiêu chuẩn cho các lớp nhận dạng hình ảnh-10” và 10 lớp trong bộ dữ liệu là:


  • Máy bay
  • Chim
  • Xe hơi
  • Con mèo
  • Con nai
  • Chó
  • Ngựa
  • Con khỉ
  • Tàu thủy
  • Xe tải


Để truy cập tập dữ liệu này, bạn có thể tải xuống trực tiếp từ kaggle hoặc tải tập dữ liệu bằng 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)


Mã để tải tập dữ liệu STL-10 bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.STL10.html#torchvision.datasets.STL10 vào ngày 22/3/2023 .

9. người nổi tiếng

Tập dữ liệu torchvision này là tập dữ liệu thuộc tính khuôn mặt quy mô lớn phổ biến bao gồm hơn 200.000 hình ảnh người nổi tiếng. Nó được các nhà nghiên cứu tại Đại học Hồng Kông Trung Quốc công bố lần đầu tiên vào năm 2015. Một hình ảnh trong CelebA bao gồm 40 thuộc tính khuôn mặt như tuổi, màu tóc, nét mặt và giới tính. Ngoài ra, những hình ảnh này đã được lấy từ internet và bao gồm nhiều diện mạo trên khuôn mặt, bao gồm các chủng tộc, độ tuổi và giới tính khác nhau. Chú thích hộp giới hạn cho vị trí của khuôn mặt trong mỗi hình ảnh, cũng như 5 điểm mốc cho mắt, mũi và miệng.


Bạn có thể tải xuống bộ dữ liệu này trên kaggle hoặc tải nó bằng mã này:


 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)


Mã để tải tập dữ liệu CelebA bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.CelebA.html#torchvision.datasets.CelebA vào ngày 22/3/2023 .

10. PASCAL VOC

Bộ dữ liệu VOC (Lớp đối tượng trực quan) được giới thiệu lần đầu tiên vào năm 2005 như một phần của Thử thách PASCAL VOC, nhằm nâng cao trình độ nghệ thuật trong nhận dạng hình ảnh. Nó bao gồm hình ảnh của 20 loại đối tượng khác nhau, bao gồm động vật, xe cộ và các đồ vật thông thường trong gia đình. Mỗi hình ảnh này được chú thích với các vị trí và phân loại của các đối tượng trong hình ảnh. Các chú thích bao gồm cả hộp giới hạn và mặt nạ phân đoạn cấp độ pixel.


Tập dữ liệu được chia thành hai tập chính: tập huấn luyện và tập xác nhận. Tập huấn luyện chứa khoảng 5.000 hình ảnh có chú thích, trong khi tập hợp lệ chứa khoảng 5.000 hình ảnh không có chú thích. Ngoài ra, bộ dữ liệu cũng bao gồm một bộ thử nghiệm với khoảng 10.000 hình ảnh, nhưng các chú thích cho bộ này không có sẵn công khai.


Để truy cập tập dữ liệu gần đây, bạn có thể tải xuống từ trang mạng , kaggle hoặc tải nó trong 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)


Mã để tải bộ dữ liệu PASCAL VOC bằng gói PyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.VOCDetection.html#torchvision.datasets.VOCDetection vào ngày 3/22/2023 .

11. Địa điểm365

Bộ dữ liệu Places365 là bộ dữ liệu nhận dạng cảnh quy mô lớn với hơn 1,8 triệu hình ảnh bao gồm 365 danh mục cảnh. Bộ dữ liệu Tiêu chuẩn của Places365 bao gồm khoảng 1,8 triệu hình ảnh, trong khi bộ dữ liệu Places365-Challenge chứa 50.000 hình ảnh xác thực bổ sung gây khó khăn hơn cho các mô hình nhận dạng.


Để truy cập tập dữ liệu này, bạn có thể sử dụng kaggle hoặc tải torchvision tại đây:


 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)


Mã để tải bộ dữ liệu Places365 bằng gói pyTorch torchvision. Truy xuất từ https://pytorch.org/vision/stable/generated/torchvision.datasets.Places365.html#torchvision.datasets.Places365 vào ngày 22/3/2023 .


Một đại diện của bộ dữ liệu Places365

Các trường hợp sử dụng phổ biến cho bộ dữ liệu Torchvision

MNIST - Bộ dữ liệu này thường được sử dụng cho các nhiệm vụ phân loại ảnh, đặc biệt là nhận dạng chữ số viết tay.


CIFAR-10 CIFAR-100 - Các bộ dữ liệu này thường được sử dụng cho các nhiệm vụ phân loại ảnh, đặc biệt là nhận dạng đối tượng.


Hình ảnhNet - Bộ dữ liệu torchvision này chứa hàng triệu hình ảnh về các đối tượng và động vật khác nhau và thường được sử dụng cho các tác vụ nhận dạng đối tượng.


MS COCO - Bộ dữ liệu này thường được sử dụng cho các nhiệm vụ phát hiện đối tượng, phân đoạn và chú thích.


Thời trang-MNIST - Tương tự như MNIST, bộ dữ liệu này thường được sử dụng cho các tác vụ phân loại ảnh, đặc biệt là nhận dạng mặt hàng thời trang.


SVHN - Bộ dữ liệu này thường được sử dụng cho các nhiệm vụ nhận dạng chữ số. Nó đặc biệt hữu ích để phát triển và thử nghiệm các thuật toán nhận dạng số trong cài đặt thế giới thực.


STL-10 - Bộ dữ liệu torchvision này thường được sử dụng cho các nhiệm vụ phân loại hình ảnh, đặc biệt là nhận dạng đối tượng.


người nổi tiếng - Bộ dữ liệu này thường được sử dụng cho các nhiệm vụ nhận dạng khuôn mặt và phân loại thuộc tính. Nó bao gồm các hình ảnh về các nét mặt, tư thế và bối cảnh khác nhau.


Pascal VOC - Bộ dữ liệu này thường được sử dụng cho các nhiệm vụ phát hiện và phân đoạn đối tượng.


Địa điểm365 - Bộ dữ liệu này thường được sử dụng cho các nhiệm vụ nhận dạng cảnh. Nó bao gồm hình ảnh của nhiều cảnh trong nhà và ngoài trời như phòng ngủ, bãi biển và văn phòng.

Suy nghĩ cuối cùng

Bộ dữ liệu Torchvision thường được sử dụng để đào tạo và đánh giá các mô hình học máy như mạng thần kinh tích chập (CNN), thường được sử dụng trong các ứng dụng thị giác máy tính.


Chúng cũng có sẵn cho mọi người tải xuống và sử dụng miễn phí.


Hình ảnh chính của bài viết này được tạo thông qua mô hình Khuếch tán ổn định AI của HackerNoon bằng cách sử dụng lời nhắc 'hàng nghìn hình ảnh được tổ chức cùng nhau trong các khung nhỏ'.


Danh sách tập dữ liệu khác:

  1. Bộ dữ liệu Excel
  2. Bộ dữ liệu Keras
  3. Bộ dữ liệu R
  4. Bộ dữ liệu PyTorch
  5. Bộ dữ liệu ôm