ImageFolder 函数是一个用来加载数据集的函数, 该数据集可以为自定义的数据集
1 数据集构造的格式要求
自定义的数据集中一共有多少个类, 就应创建多少个文件夹, 其中各个类的文件夹的名字应为类名, 将对应类的图片保存在对应的文件夹中
2 ImageFolder() 函数介绍
2.1 函数导入
ImageFolder() 函数在 torchvision.datasets 包下
import torchvision.datasets
2.2 ImageFolder() 的调用与参数介绍
import torchvision.datasets
dataset = datasets.ImageFolder(root, transform = None, target_transform = None,
loader = default_loader)
参数:
root: 在指定的路径下寻找图片
root = 'c:/...'
transform: 对图像进行变换
import torchvision.transforms
transform = transfoems.Compose([
transforms.Grayscale(),
transforms.Resize([224, 224]),
transforms.CenterCrop(),
transforms.ToTensor(),
transforms.Normalize(mean = (0, 0, 0), (1, 1, 1))
])
target_transform: 对 label 进行变换
loader: 加载图片的函数, 默认是读取PIL image 对象
3 ImageFolder() 返回值
采用 transform 操作, 返回tensor, 不采用 transform , 返回 PIL image
ImageFolder() 的返回值为二位数组, 第一维代表第几张图片, 第二维只有 0 和 1 两个数, 0 代表图片数据, 1 代表 label
例如查看第 8 张图片的 label
dataset[0][1]