以张量流亭亭玉立的ResNet-50中的图像

问题描述:

我在张量流亭亭玉立中使用ResNet-50模型来提取特征。我的问题是,在摄取图像之前,是否需要根据一些标准ResNets-50平均值将图像居中?我知道vgg-19 tf-slim提供了使用中定义的 _mean_image_subtraction(image, means)进行对中的选项。但是我找不到ResNets的任何这样的文件或功能。以张量流亭亭玉立的ResNet-50中的图像

我相信你也应该使用vgg_preprocessing。在get_preprocessing()preprocessing_factory.py

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, 
} 

您也可以从train_image_classifier.py验证使用preprocessing_factory.get_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) 
+0

完美。这是我正在寻找的。尽管它对于ResNets也有vgg_preprocessing,但这很奇怪。他们应该为此设置一个通用名称。 –

是的,你应该居中(正常化)的图像。应该为了更好的模型收敛做好准备。

如果没有用于为RESNET该图像处理操作默认tf-slim方法,您可以基于this变种自己的实现

而且更有用,为整个训练计数means(从_mean_image_subtraction(image, means))批处理,而不是针对单个图像或整个数据集。

+0

这正是我想知道,如果有需要减去手段。许多框架调整原始模型,以便可以从所有ResNet模型中减去相同的平均值。因此,知道它是否必须在tf-slim中完成是合理的,如果是,那么特定网络的平均值是多少。 –

+0

手段必须计入特定的数据集,而不是特定的网络。你也可以看[这里](http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#cv2.normalize)做另一种正常化的方法 – Dmitry

+0

通过网络的意思,我的意思是最初训练网络的图像。在转移学习中,从原始数据集中减去平均值是非常标准的做法。供您参考 - https://github.com/vlfeat/matconvnet/issues/485 –