計(jì)算機(jī)視覺是一個(gè)顯著增長(zhǎng)的領(lǐng)域,有許多實(shí)際應(yīng)用,從自動(dòng)駕駛汽車到面部識(shí)別系統(tǒng)。該領(lǐng)域的主要挑戰(zhàn)之一是獲得高質(zhì)量的數(shù)據(jù)集來(lái)訓(xùn)練機(jī)器學(xué)習(xí)模型。
Torchvision作為Pytorch的圖形庫(kù),一直服務(wù)于PyTorch深度學(xué)習(xí)框架,主要用于構(gòu)建計(jì)算機(jī)視覺模型。
為了解決這一挑戰(zhàn),Torchvision提供了訪問預(yù)先構(gòu)建的數(shù)據(jù)集、模型和專門為計(jì)算機(jī)視覺任務(wù)設(shè)計(jì)的轉(zhuǎn)換。此外,Torchvision還支持CPU和GPU的加速,使其成為開發(fā)計(jì)算機(jī)視覺應(yīng)用程序的靈活且強(qiáng)大的工具。
什么是“Torchvision數(shù)據(jù)集”?
Torchvision數(shù)據(jù)集是計(jì)算機(jī)視覺中常用的用于開發(fā)和測(cè)試機(jī)器學(xué)習(xí)模型的流行數(shù)據(jù)集集合。運(yùn)用Torchvision數(shù)據(jù)集,開發(fā)人員可以在一系列任務(wù)上訓(xùn)練和測(cè)試他們的機(jī)器學(xué)習(xí)模型,例如,圖像分類、對(duì)象檢測(cè)和分割。數(shù)據(jù)集還經(jīng)過預(yù)處理、標(biāo)記并組織成易于加載和使用的格式。
據(jù)了解,Torchvision包由流行的數(shù)據(jù)集、模型體系結(jié)構(gòu)和通用的計(jì)算機(jī)視覺圖像轉(zhuǎn)換組成。簡(jiǎn)單地說(shuō)就是“常用數(shù)據(jù)集+常見模型+常見圖像增強(qiáng)”方法。
Torchvision中的數(shù)據(jù)集共有11種:MNIST、CIFAR-10等,下面具體說(shuō)說(shuō)。
Torchvision中的11種數(shù)據(jù)集
MNIST手寫數(shù)字?jǐn)?shù)據(jù)庫(kù)
這個(gè)Torchvision數(shù)據(jù)集在機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺領(lǐng)域中非常流行和廣泛應(yīng)用。它由7萬(wàn)張手寫數(shù)字0-9的灰度圖像組成。其中,6萬(wàn)張用于訓(xùn)練,1萬(wàn)張用于測(cè)試。每張圖像的大小為28×28像素,并有相應(yīng)的標(biāo)簽表示它所代表的數(shù)字。
要訪問此數(shù)據(jù)集,您可以直接從Kaggle下載或使用torchvision加載數(shù)據(jù)集:
importtorchvision.datasetsasdatasets#Loadthetrainingdataset train_dataset=datasets.MNIST(root='data/',train=True,transform=None,download=True)#Loadthetestingdataset test_dataset=datasets.MNIST(root='data/',train=False,transform=None,download=True)
左右滑動(dòng)查看完整代碼
CIFAR-10(廣泛使用的標(biāo)準(zhǔn)數(shù)據(jù)集)
CIFAR-10數(shù)據(jù)集由6萬(wàn)張32×32彩色圖像組成,分為10個(gè)類別,每個(gè)類別有6000張圖像,總共有5萬(wàn)張訓(xùn)練圖像和1萬(wàn)張測(cè)試圖像。這些圖像又分為5個(gè)訓(xùn)練批次和一個(gè)測(cè)試批次,每個(gè)批次有1萬(wàn)張圖像。數(shù)據(jù)集可以從Kaggle下載。
importtorchimporttorchvisionimporttorchvision.transformsastransforms 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)左右滑動(dòng)查看完整代碼
在此提醒一句,您可以根據(jù)需要調(diào)整數(shù)據(jù)加載器的批處理大小和工作進(jìn)程的數(shù)量。
CIFAR-100(廣泛使用的標(biāo)準(zhǔn)數(shù)據(jù)集)
CIFAR-100數(shù)據(jù)集在100個(gè)類中有60,000張(50,000張訓(xùn)練圖像和10,000張測(cè)試圖像)32×32的彩色圖像。每個(gè)類有600張圖像。這100個(gè)類被分成20個(gè)超類,用一個(gè)細(xì)標(biāo)簽表示它的類,另一個(gè)粗標(biāo)簽表示它所屬的超類。
importtorchimporttorchvisionimporttorchvision.transformsastransforms importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms#Definetransformtonormalizedata transform=transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.5,0.5,0.5],std=[0.5,0.5,0.5])]) #LoadCIFAR-100trainandtestdatasets trainset=datasets.CIFAR100(root='./data',train=True,download=True,transform=transform) testset=datasets.CIFAR100(root='./data',train=False,download=True,transform=transform) #Createdataloadersfortrainandtestdatasets trainloader=torch.utils.data.DataLoader(trainset,batch_size=64,shuffle=True) testloader=torch.utils.data.DataLoader(testset,batch_size=64,shuffle=False)左右滑動(dòng)查看完整代碼
ImageNet數(shù)據(jù)集
Torchvision中的ImageNet數(shù)據(jù)集包含大約120萬(wàn)張訓(xùn)練圖像,5萬(wàn)張驗(yàn)證圖像和10萬(wàn)張測(cè)試圖像。數(shù)據(jù)集中的每張圖像都被標(biāo)記為1000個(gè)類別中的一個(gè),如“貓”、“狗”、“汽車”、“飛機(jī)”等。
importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms #SetthepathtotheImageNetdatasetonyourmachine data_path="/path/to/imagenet" #CreatetheImageNetdatasetobjectwithcustomoptions 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) #Printthenumberofimagesinthetrainingandvalidationsetsprint("Numberofimagesinthetrainingset:",len(imagenet_train))print("Numberofimagesinthevalidationset:",len(imagenet_val))左右滑動(dòng)查看完整代碼
MSCoco數(shù)據(jù)集
Microsoft Common Objects in Context(MS Coco)數(shù)據(jù)集包含32.8萬(wàn)張日常物體和人類的高質(zhì)量視覺圖像,通常用作實(shí)時(shí)物體檢測(cè)中比較算法性能的標(biāo)準(zhǔn)。
Fashion-MNIST數(shù)據(jù)集
時(shí)尚MNIST數(shù)據(jù)集是由Zalando Research創(chuàng)建的,作為原始MNIST數(shù)據(jù)集的替代品。Fashion MNIST數(shù)據(jù)集由70000張服裝灰度圖像(訓(xùn)練集60000張,測(cè)試集10000張)組成。
圖片大小為28×28像素,代表10種不同類別的服裝,包括:t恤/上衣、褲子、套頭衫、連衣裙、外套、涼鞋、襯衫、運(yùn)動(dòng)鞋、包和短靴。它類似于原始的MNIST數(shù)據(jù)集,但由于服裝項(xiàng)目的復(fù)雜性和多樣性,分類任務(wù)更具挑戰(zhàn)性。這個(gè)Torchvision數(shù)據(jù)集可以從Kaggle下載。
importtorchimporttorchvisionimporttorchvision.transformsastransforms #Definetransformations transform=transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5,),(0.5,))])#Loadthedataset trainset=torchvision.datasets.FashionMNIST(root='./data',train=True, download=True,transform=transform) testset=torchvision.datasets.FashionMNIST(root='./data',train=False, download=True,transform=transform) #Createdataloaders 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)左右滑動(dòng)查看完整代碼
SVHN數(shù)據(jù)集
SVHN(街景門牌號(hào))數(shù)據(jù)集是一個(gè)來(lái)自谷歌街景圖像的圖像數(shù)據(jù)集,它由從街道級(jí)圖像中截取的門牌號(hào)的裁剪圖像組成。它包含所有門牌號(hào)及其包圍框的完整格式和僅包含門牌號(hào)的裁剪格式。完整格式通常用于對(duì)象檢測(cè)任務(wù),而裁剪格式通常用于分類任務(wù)。
SVHN數(shù)據(jù)集也包含在Torchvision包中,它包含了73,257張用于訓(xùn)練的圖像、26,032張用于測(cè)試的圖像和531,131張用于額外訓(xùn)練數(shù)據(jù)的額外圖像。
importtorchvisionimporttorch #Loadthetrainandtestsets 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()) #Createdataloaders 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)
左右滑動(dòng)查看完整代碼
STL-10數(shù)據(jù)集
STL-10數(shù)據(jù)集是一個(gè)圖像識(shí)別數(shù)據(jù)集,由10個(gè)類組成,總共約6000+張圖像。STL-10代表“圖像識(shí)別標(biāo)準(zhǔn)訓(xùn)練和測(cè)試集-10類”,數(shù)據(jù)集中的10個(gè)類是:飛機(jī)、鳥、汽車、貓、鹿、狗、馬、猴子、船、卡車。您可以直接從Kaggle下載數(shù)據(jù)集。
importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms #Definethetransformationtoapplytothedata transform=transforms.Compose([ transforms.ToTensor(), #ConvertPILimagetoPyTorchtensor transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))#Normalizethedata]) #LoadtheSTL-10dataset train_dataset=datasets.STL10(root='./data',split='train',download=True,transform=transform) test_dataset=datasets.STL10(root='./data',split='test',download=True,transform=transform)
左右滑動(dòng)查看完整代碼
CelebA數(shù)據(jù)集
這個(gè)Torchvision數(shù)據(jù)集是一個(gè)流行的大規(guī)模面部屬性數(shù)據(jù)集,包含超過20萬(wàn)張名人圖像。2015年,香港中文大學(xué)的研究人員首次發(fā)布了這一數(shù)據(jù)。CelebA中的圖像包含40個(gè)面部屬性,如,年齡、頭發(fā)顏色、面部表情和性別。
此外,這些圖片是從互聯(lián)網(wǎng)上檢索到的,涵蓋了廣泛的面部外觀,包括不同的種族、年齡和性別。每個(gè)圖像中面部位置的邊界框注釋,以及眼睛、鼻子和嘴巴的5個(gè)地標(biāo)點(diǎn)。
importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms 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)
左右滑動(dòng)查看完整代碼
PASCAL VOC數(shù)據(jù)集
VOC數(shù)據(jù)集(視覺對(duì)象類)于2005年作為PASCAL VOC挑戰(zhàn)的一部分首次引入。該挑戰(zhàn)旨在推進(jìn)視覺識(shí)別的最新水平。它由20種不同類別的物體組成,包括:動(dòng)物、交通工具和常見的家用物品。這些圖像中的每一個(gè)都標(biāo)注了圖像中物體的位置和分類。注釋包括邊界框和像素級(jí)分割掩碼。
數(shù)據(jù)集分為兩個(gè)主要集:訓(xùn)練集和驗(yàn)證集。
訓(xùn)練集包含大約5000張帶有注釋的圖像,而驗(yàn)證集包含大約5000張沒有注釋的圖像。此外,該數(shù)據(jù)集還包括一個(gè)包含大約10,000張圖像的測(cè)試集,但該測(cè)試集的注釋是不可公開的。
importtorchimporttorchvisionfromtorchvisionimporttransforms #Definetransformationstoapplytotheimages 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])]) #Loadthetrainandvalidationdatasets 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)#Createdataloaders 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)
左右滑動(dòng)查看完整代碼
Places365數(shù)據(jù)集
Places365數(shù)據(jù)集是一個(gè)大型場(chǎng)景識(shí)別數(shù)據(jù)集,擁有超過180萬(wàn)張圖像,涵蓋365個(gè)場(chǎng)景類別。Places365標(biāo)準(zhǔn)數(shù)據(jù)集包含約180萬(wàn)張圖像,而Places365挑戰(zhàn)數(shù)據(jù)集包含5萬(wàn)張額外的驗(yàn)證圖像,這些圖像對(duì)識(shí)別模型更具挑戰(zhàn)性。
importtorchimporttorchvisionfromtorchvisionimporttransforms #Definetransformationstoapplytotheimages 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])]) #Loadthetrainandvalidationdatasets train_dataset=torchvision.datasets.Places365(root='./data',split='train-standard',transform=transform) val_dataset=torchvision.datasets.Places365(root='./data',split='val',transform=transform)#Createdataloaders 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)
左右滑動(dòng)查看完整代碼
總結(jié)
總之,Torchvision數(shù)據(jù)集通常用于訓(xùn)練和評(píng)估機(jī)器學(xué)習(xí)模型,如卷積神經(jīng)網(wǎng)絡(luò)(CNNs)。這些模型通常用于計(jì)算機(jī)視覺應(yīng)用,任何人都可以免費(fèi)下載和使用。本文的主要圖像是通過HackerNoon的AI穩(wěn)定擴(kuò)散模型生成的。
審核編輯:湯梓紅
-
gpu
+關(guān)注
關(guān)注
28文章
4949瀏覽量
131278 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7663瀏覽量
90834 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3927瀏覽量
66268 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5561瀏覽量
122806 -
pytorch
+關(guān)注
關(guān)注
2文章
809瀏覽量
13969
原文標(biāo)題:你需要知道的11個(gè)Torchvision計(jì)算機(jī)視覺數(shù)據(jù)集
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
機(jī)器視覺與計(jì)算機(jī)視覺的關(guān)系簡(jiǎn)述
計(jì)算機(jī)視覺/深度學(xué)習(xí)領(lǐng)域常用數(shù)據(jù)集匯總
自動(dòng)駕駛系統(tǒng)要完成哪些計(jì)算機(jī)視覺任務(wù)?
計(jì)算機(jī)有哪些功能
介紹深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域四大基本任務(wù)中的應(yīng)用
計(jì)算機(jī)視覺與機(jī)器視覺區(qū)別
用于計(jì)算機(jī)視覺訓(xùn)練的圖像數(shù)據(jù)集
用于計(jì)算機(jī)視覺訓(xùn)練的圖像數(shù)據(jù)集
機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺的前20個(gè)圖像數(shù)據(jù)集

評(píng)論