目录
一、知识点学习
Part1 数据增强基础
目的:通过人工方式增加训练数据的多样性,从而提高模型的泛化能力。
对于图像而言,数据增强包括例如视角、光照、遮挡等情况,使得模型能够学习到更加鲁棒的特征表示
PyTorch框架中的图像增强:
-
图像大小调整:
transforms.Resize((256, 256))
将所有图像调整到256x256像素的尺寸 -
随机水平翻转:
transforms.RandomHorizontalFlip()
随机地水平翻转图像 -
随机垂直翻转:
transforms.RandomVerticalFlip()
随机地垂直翻转图像 -
转换为张量:
transforms.ToTensor()
将图像数据转换为PyTorch的Tensor格式 -
归一化:
在深度学习中,对输入数据进行归一化是一个标准步骤。归一化有助于加快模型的收敛速度,并提高数值稳定性。对于验证集,应该避免使用如随机翻转等可能引入不必要噪音的增强方法。通常,验证集只需要进行必要的预处理,如调整大小和归一化。transforms.Normalize()
对图像进行归一化处理,这里的均值和标准差是根据ImageNet数据集计算得出的,用于将图像像素值标准化,这有助于模型的训练稳定性和收敛速度。
train_loader = torch.utils.data.DataLoader(
FFDIDataset(train_label['path'].head(1000), train_label['target'].head(1000),
transforms.Compose([
transforms.Resize((256, 256)),
transforms.RandomHorizontalFlip(),
transforms.RandomVerticalFlip(),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
), batch_size=40, shuffle=True, num_workers=4, pin_memory=True
)
val_loader = torch.utils.data.DataLoader(
FFDIDataset(val_label['path'].head(1000), val_label['target'].head(1000),
transforms