在进行相关平台的练习过程中,由于要自己导入数据集,而导入方法在市面上五花八门,各种库都可以应用,在这个过程中我准备尝试torchvision的库dataset torchvision.datasets.ImageFolder 简单应用起来非常简单,用torchvision.datasets.ImageFolder实现图片的导入,在随后训练过程中用Datalodar处理后可按批次取出训练集
class ImageFolder(root, transform=None, target_transform=None, loader=default_loader, is_valid_file=None) ImageFolder有这么几个参数,其中root指的是数据所在的文件夹,其中该文件夹的存储方式应为 root/labels/xxx.jpg 即根据自身分类标签存储在对应标签名的文件夹内 ImageFolder在读入的过程中会自行加好标签,最后形成一对对的数据 另外比较常用的就是transform,表示对于传入图片的预处理,如剪裁,颜色选择等等 比如
transform_t = transforms.Compose([
transforms.Resize([64, 64]),
transforms.Grayscale(num_output_channels=1),
transforms.ToTensor()]
)
具体参数可以上网查看 在之后用DataLodar处理后虽然的确有Shuffle的参数,但是却只是在一个小批次内进行打乱,原本是按照类别存储的,这样的话会导致很严重的过拟合,为了避免这个,我决定常识改写一下Dataset的类(主要是看起来Dataset看起来改写比较顺手...ImageFold