我正在使用pytorch教程学习转学习。我发现pytorch教程作者使用不同的方法训练集和验证集。
data_transforms = {
'train': transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]),
'val': transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]),
}
如上所述,训练课程在训练中使用随机裁剪的图像。但我发现在转换之后,一些图像完全被目标物体切除,并且仍然没有用于检测的有用特征。我很好奇为什么作者选择了这种方法,即使定义不同的管道以训练和验证数据集更加困难。随机裁剪有什么好处吗?
答案 0 :(得分:2)
随机裁剪背后的一些想法:
在简短:
更多详细信息:
保留图像的语义,但转换网的激活值不同。转换网学会将更广泛的空间激活与特定的类标签相关联,并提高了转换网中特征检测器的稳健性。
请看这段摘录https://link.springer.com/chapter/10.1007/978-3-319-31293-4_25