KERAS中Inception V3的预处理功能



这是keras中Inception V3的预处理函数。它与其他模型完全不同。

def preprocess_input(x):
    x /= 255.
    x -= 0.5
    x *= 2.
    return x

1。为什么没有平均扣除?

2。为什么没有RGB到BGR?

3。对于此模型,[-1,1]之间的映射是正常的?

这是keras中VGG和Resnet的预处理功能:

def preprocess_input(x, data_format=None):
    if data_format is None:
        data_format = K.image_data_format()
    assert data_format in {'channels_last', 'channels_first'}
    if data_format == 'channels_first':
        # 'RGB'->'BGR'
        x = x[:, ::-1, :, :]
        # Zero-center by mean pixel
        x[:, 0, :, :] -= 103.939
        x[:, 1, :, :] -= 116.779
        x[:, 2, :, :] -= 123.68
    else:
        # 'RGB'->'BGR'
        x = x[:, :, :, ::-1]
        # Zero-center by mean pixel
        x[:, :, :, 0] -= 103.939
        x[:, :, :, 1] -= 116.779
        x[:, :, :, 2] -= 123.68
    return x

CAFFE模型还使用平均减法和RGB进行BGR。

  1. 使用您引用的预处理函数对启动模型进行了训练。因此,您的图像必须贯穿该功能,而不是用于VGG/Resnet的功能。减去平均值不需要。另请参阅此线程:https://github.com/fchollet/keras/issues/5416。

  2. 原始的Googlenet纸是指RGB图像而不是BGR。另一方面,VGG使用Caffe进行了训练,Caffe使用OpenCV加载默认情况下使用BGR的图像。

  3. 是。另请参见此线程和Marcins答案:我是否应该提取Imapter_v3模型的Inception_v3均值inception_v3.py keras?

最新更新