【问题标题】:Image preprocessing of finetune in ResNetResNet中finetune的图像预处理
【发布时间】:2020-08-04 14:17:38
【问题描述】:

我想对 ResNet50 ImageNet 预训练模型进行微调,关于微调的图像预处理有几个问题。

  1. 在 ImageNet 预处理中,我们需要减去像素的平均值([103.939, 116.779, 123.68])。当我使用我的数据集进行微调时,我应该减去 ImageNet 的平均值还是减去我的数据的平均值。

  2. 我确实看到很多人将数据重新缩放到 [0,1],但是预训练模型 (ImageNet) 使用 [0,255] 中的图像缩放。人们为什么这样做?合理吗?

【问题讨论】:

  • 我想如果你使用 imagenet 的平均值,你会得到最好的准确度。但是,我认为这不会有很大的不同。如果你做了一个实验并让我们知道,那就太酷了!当您有许多不同比例的不同特征时,通常使用 0 到 1 之间的比例。对于图像分类,这不是必需的,只需确保所有图像都具有相同的缩放比例,并且模型是在具有相同缩放比例的图像上训练的。

标签: python deep-learning


【解决方案1】:

老实说,人们夸大了图像预处理的影响。唯一真正重要的是测试数据在价值尺度上与训练数据相似。使用批量归一化具有预归一化数据集有一些理论上的好处,但在实践中并没有太大的区别(2-4% 的准确度)。

如果您有一个正在运行的模型,并且您试图在不增加参数数量的情况下获得最后几个 % 的更好准确度,那么我建议您根据您的用例进行调整。

在我看来,没有一种方法适用于每个用例,但一个好的起点是使用与 ImageNet 相同的预处理,因为这些特征与为 imagenet 分类生成的特征相似。

【讨论】:

  • 2-4% 有点大了
【解决方案2】:
  1. 我会尝试两者。减去你的平均值是有意义的,因为通常人们会试图得到平均值 0。减去图像网络平均值是有意义的,因为你希望网络作为特征提取器。如果您在特征提取器的早期更改某些内容,则它可能根本不起作用。
  2. 就像均值 0 一样,通常认为具有固定范围内的特征或具有固定标准偏差的特征是一种理想的属性。再说一次,我真的不能告诉你什么更好,但你可以很容易地尝试一下。我的猜测是没有太大的差异。

最重要的是:确保对训练/测试/评估数据应用相同的预处理步骤。

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 2019-02-26
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多