【问题标题】:Keras ImageDataGenerator PreprocessingKeras ImageDataGenerator 预处理
【发布时间】:2018-08-07 18:20:46
【问题描述】:

例如,考虑在 Keras 中微调 Resnet50 模型。 For example here

from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from keras.preprocessing.image import ImageDataGenerator
from keras.applications.resnet50 import preprocess_input, decode_predictions
import numpy as np

model = ResNet50(weights='imagenet')

train_datagen = ImageDataGenerator()
train_generator = train_datagen.flow_from_directory(
     "./data/train",
    target_size=(299, 299),
    batch_size=50,
    class_mode='binary')
model.fit_generator(train_generator, steps_per_epoch=100)

让我感到困惑的是为什么 ImageDataGenerator 没有给出与 Resnet50 期望一致的 preprocessing_function 规范。具体来说,Resnet50.preprocess_input() 在 ResNet50 包中提供。 ImageDataGenerator's 输入看起来像:

keras.preprocessing.image.ImageDataGenerator(featurewise_center=False,
    samplewise_center=False,
    featurewise_std_normalization=False,
    samplewise_std_normalization=False,
    zca_whitening=False,
    zca_epsilon=1e-6,
    rotation_range=0.,
    width_shift_range=0.,
    height_shift_range=0.,
    shear_range=0.,
    zoom_range=0.,
    channel_shift_range=0.,
    fill_mode='nearest',
    cval=0.,
    horizontal_flip=False,
    vertical_flip=False,
    rescale=None,
    preprocessing_function=None,
    data_format=K.image_data_format())

所以我很困惑 ImageDataGenerator 的正确初始化是什么。我可以设置preprocessing_function=resnet50.Resnet50.preprocess_input,但是我不确定要为其余的 ImageDataGenerator 参数设置什么,因为其中一些参数是非零的,比如 zca。

注意:我不仅对 Resnet50 感兴趣,而且对任何模型都感兴趣。 Keras 中似乎有一些默认值,例如默认为“caffe”或“inception”规范化。

【问题讨论】:

    标签: tensorflow neural-network keras


    【解决方案1】:

    您可以将预处理函数的名称传递给预处理参数。如果您不想要数据增强,则不需要传递任何其他内容。

    from keras.applications.resnet50 import preprocess_input
    from keras.preprocessing.image import ImageDataGenerator
    
    train_datagen = ImageDataGenerator(preprocessing_function=preprocess_input)
    

    您还可以编写自己的自定义预处理函数并将其作为参数传递。确保自定义函数的参数和返回值是 numpy 数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2021-08-25
      • 2016-12-26
      • 1970-01-01
      • 2018-10-12
      相关资源
      最近更新 更多