我正在使用tensorflow-slim中的ResNet-50模型来提取特征。我的问题是,在输入图像之前,我是否需要根据一些标准ResNets-50个平均值将图像居中?我知道对于vgg-19TF-slim提供了使用vgg_preprocessing.py中定义的_mean_image_subtraction(image, means)居中的选项。但是我找不到任何用于ResNets的这样的文件或函数。
发布于 2017-08-26 00:27:08
我相信你也应该使用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)发布于 2017-08-25 19:39:00
是的,你应该居中(规格化)图像。应该这样做,以便更好地实现模型收敛。
如果ResNet的此图像处理操作没有默认的tf-slim方法,您可以基于this变体进行自己的实现
此外,对整个训练批次的means (来自_mean_image_subtraction(image, means) )进行计数也更有用,而不是针对单个图像或整个数据集。
https://stackoverflow.com/questions/45866737
复制相似问题