getitem 魔法
在训练模型之前,首先要进行数据的加载,Dataset中和Dataloader被用来加载数据。下面进行详细讲解:
首先,首先写自己的Dataset用来加载数据,并且自己的Dataset中主要包含三个魔法: init、len、getitem,其中最主要的是getitem,因为它和Dataloader关联
dataset = CustomDataset(dataset_path="..\\PracticeDataset",transform=transform)
train_dataloader = DataLoader(dataset,batch_size=16,shuffle=True)
如上面示例代码所示:在训练过程中Dataloader把数据划分为nums/batchsize个批次,然后对这些批次分别进行遍历,每次遍历batchsize大小,并且调用一次getitem,getitem中得到该批量大小的item索引,并对其进行处理,也就是说,getitem是进行批量处理的一个主要空间,如图像的加载以及RGB的转换等等,每次处理BatchSize大小的数据,并返回如该类型的shape,例如:torch.Size([16, 3, 256, 256]),表示批量大小为16,3通道(因为是彩色图片),256X256大小。