本文主要是介绍torchvision.datasets.ImageFolder 数据加载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、torchvision已经余弦实现了常用的Dataset,包括CIFAR-10,以及ImageNet、COCO、MNIST、LSUN等数据集,可通过诸如torchvision.datasets.CIFAR10来调用。
2、ImageFolder假设所有的文件按文件夹保存,每个文件下存储同一类别的图片,文件夹名为类名,构造函数如下:
ImageFolder(root,transform=None,target_transform=None,loader=default_loader)
主要有四个参数:
root:在指定路径下寻找图片
transform:对PIL Image进行的转换操作
target_transform:对label的转换
loader:给定路径后如何读取图片,默认读取为RGB格式的PIL Image对象
label是按照文件夹名顺序排列后存成字典,即{类名:类序号},类序号从0开始。
from torchvision import transforms as T
import matplotlib.pyplot as plt
from torchvision.datasets import ImageFolderdataset = ImageFolder('data/dogcat_2/')# cat文件夹的图片对应label 0,dog对应1
print(dataset.class_to_idx)# 所有图片的路径和对应的label
print(dataset.imgs)# 没有任何的transform,所以返回的还是PIL Image对象
#print(dataset[0][1])# 第一维是第几张图,第二维为1返回label
#print(dataset[0][0]) # 为0返回图片数据
plt.imshow(dataset[0][0])
plt.axis('off')
plt.show()
这篇关于torchvision.datasets.ImageFolder 数据加载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!