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