1

我正在使用 tensorflow slim 加载预训练模型,如 vgg 和 resnet-50。因此对于 vgg , tf-slim 提供了一种加载 RGB 平均值的方法,例如:

from preprocessing.vgg_preprocessing import (_mean_image_subtraction,
                                            _R_MEAN, _G_MEAN, _B_MEAN)

我找不到与 resnets 类似的东西。还没有实施吗?我也知道一些像 py-torch 这样的库为每个模型提供了全局平均值。tf-slim 也是这样吗?

4

4 回答 4

1

实际上,尽管preprocessing_factory说 restnetv2 使用 vgg_preprocessing 它不是。resnetv2 的正确预处理是 inception_preprocessing,如此 github 问题https://github.com/tensorflow/models/issues/2217中所述

于 2019-01-14T10:58:37.100 回答
0

前面的答案实际上并不完全正确。看看 https://github.com/tensorflow/models/blob/master/research/slim/preprocessing/preprocessing_factory.py

可以看到 Resnet-V1 和 ResNet-V2 都使用了 VGG 预处理

 preprocessing_fn_map = {
  'cifarnet': cifarnet_preprocessing,
  'inception': inception_preprocessing,
  'inception_v1': inception_preprocessing,
  'inception_v2': inception_preprocessing,
  'inception_v3': inception_preprocessing,
  'inception_v4': inception_preprocessing,
  'inception_resnet_v2': inception_preprocessing,
  'lenet': lenet_preprocessing,
  'mobilenet_v1': inception_preprocessing,
  'mobilenet_v2': inception_preprocessing,
  'mobilenet_v2_035': inception_preprocessing,
  'mobilenet_v2_140': inception_preprocessing,
  'nasnet_mobile': inception_preprocessing,
  'nasnet_large': inception_preprocessing,
  'pnasnet_mobile': inception_preprocessing,
  'pnasnet_large': inception_preprocessing,
  'resnet_v1_50': vgg_preprocessing,
  'resnet_v1_101': vgg_preprocessing,
  'resnet_v1_152': vgg_preprocessing,
  'resnet_v1_200': vgg_preprocessing,
  'resnet_v2_50': vgg_preprocessing,
  'resnet_v2_101': vgg_preprocessing,
  'resnet_v2_152': vgg_preprocessing,
  'resnet_v2_200': vgg_preprocessing,
  'vgg': vgg_preprocessing,
  'vgg_a': vgg_preprocessing,
  'vgg_16': vgg_preprocessing,
  'vgg_19': vgg_preprocessing,

}

于 2018-09-04T06:39:35.907 回答
0

我在 ImageNet 验证数据集上测试了 Resnet_v1_50 和 Resnet_v2_50 的 Slim 检查点,结果是 Resnet_v1_50 使用 VGG 预处理,而 Resnet_v2_50 使用 Inception 预处理。

Github issue还指出了源代码中的误导性信息。

于 2020-09-02T07:15:40.540 回答
-1

在 TensorFlow Slim resnet-v1 中使用 vgg_preprocessing。Resnet-v2 默认使用 inception 预处理,它使用了大量的颜色、色调和饱和度增强。这使得均值减法不太相关。

于 2017-09-29T07:24:21.907 回答