【问题标题】:Grid search with GridSearchCV - scikit-learn (Hyperparameter Tuning) using ImageDataGenerator (keras)?使用 GridSearchCV 进行网格搜索 - 使用 ImageDataGenerator(keras)的 scikit-learn(超参数调整)?
【发布时间】:2019-06-02 08:35:28
【问题描述】:

当我的图像输入通过ImageDataGenerator 时,如何执行超参数调整?我的训练和测试数据不是数组形式(X_train、Y_train 等)。我想使用来自sklearnGridSearchCV 和来自kerasImageDataGenerator 调整我的超参数。

这些是我尝试过的代码中的一些 sn-ps!

#(5) Train
train_datagen = ImageDataGenerator(rescale=1./255)

validation_datagen = ImageDataGenerator(rescale=1./255)

train_batchsize = 15
val_batchsize = 10

train_generator = train_datagen.flow_from_directory(
        train_dir,
        batch_size=train_batchsize,
        class_mode='categorical',
        shuffle=False)

validation_generator = validation_datagen.flow_from_directory(
        validation_dir,
        target_size=(image_size, image_size1),
        batch_size=val_batchsize,
        class_mode='categorical')

#Function for Creating Model
def create_model():
    .....................
    return model

model = KerasClassifier(build_fn=create_model, batch_size=1000, epochs=10, verbose = 1) 

# Use scikit-learn to grid search 
activation =  ['relu', 'tanh', 'sigmoid', 'hard_sigmoid', 'linear'] # softmax, softplus, softsign 
momentum = [0.0, 0.2, 0.4, 0.6, 0.8, 0.9]
neurons = [1, 5, 10, 15, 20, 25, 30]
init = ['uniform', 'lecun_uniform', 'normal', 'zero', 'glorot_normal', 'glorot_uniform', 'he_normal', 'he_uniform']
optimizer = [ 'SGD', 'RMSprop', 'Adagrad', 'Adadelta', 'Adam', 'Adamax', 'Nadam']

param_grid = dict(epochs=epochs, batch_size=batch_size)
##############################################################
grid = GridSearchCV(estimator=model, param_grid=param_grid, n_jobs=-1)
grid_result = grid.fit_generator(train_generator, validation_generator) 

在这一行出现错误: grid_result = grid.fit_generator(train_generator, validation_generator)

【问题讨论】:

    标签: python-3.x keras conv-neural-network grid-search hyperparameters


    【解决方案1】:

    Sklearn GridSearchCV 不公开fit_generator 方法。 您可能将它与 Keras(现已弃用)fit_generator 混淆了。

    这意味着,如果您从生成器获取训练数据,则对 Keras 模型进行网格搜索并非易事。我在 SO 上发现了两个相关问题:

    所以现在,您必须求助于变通方法。

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 2021-06-14
      • 2021-08-11
      • 2020-07-17
      • 2017-11-28
      • 2020-01-29
      • 2016-04-09
      • 1970-01-01
      • 2014-07-12
      相关资源
      最近更新 更多