有关PyTorch中预训练图像分类器的图像处理的问题

时间:2020-03-05 11:06:46

标签: python pytorch

我试图在PyTorch中使用流行的预先训练的VGG模型进行图像分类,但是注意到在大多数程序中,图像被调整为256大小并裁剪为224以进行图像预处理。我很好奇为什么我们先将其大小调整为256并裁剪,而不是直接将其调整为224。

transforms = transforms.Compose([transforms.Resize(256), 
                                 transforms.CenterCrop(224),
                                 transforms.ToTensor(),
                                 transforms.Normalize([0.485, 0.456, 0.406], 
                                                     [0.229, 0.224, 0.225])])

1 个答案:

答案 0 :(得分:1)

对于图像分类任务,通常,感兴趣的对象位于图像的中心。因此,通常的做法(推理)是将图像的中心裁切掉一些边界(但是,这通常不适用,因为精确的预处理很大程度上取决于训练网络的方式)。

根据“为什么要裁剪而不直接调整大小”,这是训练期间数据增强的副产品:随机裁剪图像是一种非常常见的数据增强技术。在推论时,将整个图像调整为输入大小而不是应用裁剪会影响图像中对象的比例,这会对网络性能产生负面影响(因为您要评估的数据的“格式”与您接受过训练且CNN不变)。