celeba數據集,以及pytorch加載圖片文件夾遇到的坑

1.celeba數據集

這是一個大規模人臉數據集官網

香港中文大學發佈的,提供了百度雲盤的下載,使用很方便。

總共有202,599張圖片,且有圖片的標註(Label)文件。 最常用的是剪裁過的圖片,文件名叫img_align_celeba

2.pytorch加載

pytorch加載數據集一般分爲兩步,第一步是創建一個代表整個數據集的對象dataSet

from torchvision import datasets
Celeba_dataset = datasets.ImageFolder(path, transform=torchvision.transforms.ToTensor())
#     #dataset=torchvision.datasets.FashionMNIST('./data/', train=True, download=True, transform=transform),
#     #dataset=torchvision.datasets.CIFAR10('./data', train=True, download=True, transform=transform),
#     dataset=torchvision.datasets.MNIST('./data/', train=True, download=True, transform=transform),

第二步是創建一個dataloader,用於迭代一批數據,讓整個數據分批訓練,這裏batch_size就是一批圖片的大小。

data_loader = torch.utils.data.DataLoader(dset, batch_size=128, shuffle=true,drop_last=True)

3.加載報錯

如果報錯:

RuntimeError: Found 0 files in subfolders of: Data/celeb_data/resized_celeb/ Supported extensions are: .jpg,.jpeg,.png,.ppm,.bmp,.pgm,.tif,.tiff,.webp

這時要注意torchvision.datasets.ImageFolder這個數據集的子類,如果用這個默認類讀取圖片文件,需要在該文件下再創建文件夾作爲類別標籤,因爲它的格式是

img_file:
	label1:
		1.jpg
		2.jpg
		3.jpg
	label2:
		1...

所以在img_align_celeba文件夾外再套一個文件夾,把ImageFolder的path參數名改爲外面那個文件夾即可.

stack_overflow上也有類似的解釋:
https://stackoverflow.com/questions/56720653/image-is-in-jpeg-but-torchvision-shows-image-extension-is-unsupported

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章