Torch里有一个自带图片读取函数torchvision.datasets.ImageFolder,格式如下:
#path:图片路径 transform:图片转换操作
#target_transform:label变换操作 loader:指定加载图片的函数,默认使用PIL读取
ImageFolder(path,transform=None,target_transform=None,loader=default_loader)
例子:
from torchvision.datasets import ImageFolder
#目录文件夹只放了两张照片,一张在子文件夹cat,另一张在子文件夹dog
dataset=ImageFolder('G:/dog_cat/')
#打印图片路径下各文件夹的label
print(dataset.class_to_idx)
out:{‘dog’: 1, ‘cat’: 0}
#打印文件夹下所有图片及其标签
print(dataset.imgs)
out:[(‘G:/dog_cat/cat\cat.jpg’, 0), (‘G:/dog_cat/dog\dog.jpg’, 1)]
#第一个维度代表第几张图片,第二个代表label/格式
print(dataset[0][1]) #打印第一张图片的label
print(dataset[1][0]) #打印第二张图片的格式
out: 0
out:<PIL.Image.Image image mode=RGB size=1280x1024 at 0x24B571EBD30>