Computer vision tensorflow slim中ResNet-50中的图像居中

Computer vision tensorflow slim中ResNet-50中的图像居中,computer-vision,deep-learning,tensorflow-gpu,tf-slim,resnet,Computer Vision,Deep Learning,Tensorflow Gpu,Tf Slim,Resnet,我在tensorflow slim中使用ResNet-50模型来提取特征。我的问题是,在输入图像之前,是否需要根据一些标准的RESNET-50平均值将图像居中?我知道,对于vgg-19,tf slim提供了使用 _均值图像减法(图像,均值)在vgg\u preprocessing.py中定义。但是我找不到任何用于resnet的此类文件或函数。是的,您应该将图像居中(标准化)。为了更好地收敛模型,应该这样做 如果ResNet的此图像处理操作没有默认的tf slim方法,您可以根据变量自行实现 另外

我在tensorflow slim中使用ResNet-50模型来提取特征。我的问题是,在输入图像之前,是否需要根据一些标准的RESNET-50平均值将图像居中?我知道,对于vgg-19,tf slim提供了使用

_均值图像减法(图像,均值)
vgg\u preprocessing.py
中定义。但是我找不到任何用于resnet的此类文件或函数。

是的,您应该将图像居中(标准化)。为了更好地收敛模型,应该这样做

如果ResNet的此图像处理操作没有默认的
tf slim
方法,您可以根据变量自行实现


另外,对整个训练批计算
平均值
(从
\u mean\u image\u减法(image,means)
)更有用,而不是对单个图像或整个数据集。

我认为您也应该使用
vgg\u预处理
。在
get_preprocessing()
from中:

您还可以验证是否使用了
预处理\u工厂。获取\u preprocessing()
来源:


这正是我想知道的,如果需要减去平均数的话。许多框架调整原始模型,以便从所有ResNet模型中减去相同的平均值。因此,了解是否必须在tf slim中进行是有意义的,如果是,则特定网络的平均值是多少。平均值必须是特定数据集的计数,而不是特定网络的计数。你也可以通过网络来寻找另一种正常化的方法,我指的是网络最初训练的图像。在迁移学习中,从原始数据集中减去平均值是一种非常标准的做法。供您参考-完美。这就是我要找的。虽然这是如此奇怪,他们有VGU预处理的resnet以及。他们应该给这件事起个通用的名字。
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,
  '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,
}
preprocessing_name = FLAGS.preprocessing_name or FLAGS.model_name
image_preprocessing_fn = preprocessing_factory.get_preprocessing(
    preprocessing_name,
    is_training=True)

...

image = image_preprocessing_fn(image, train_image_size, train_image_size)