Я хочу реализовать алгоритм обучения ансамбля, который представляет собой AdaBoost для CNN с использованием SkLearn и Keras, у меня есть собственный набор данных, и у меня не так много оперативной памяти, поэтому я хочу использовать онлайн-расширение данных с помощью класса Keras ImageDataGenerator что позволяет мне использовать онлайн-увеличение данных и не загружает весь набор данных сразу, что помогает в случае нехватки оперативной памяти.
Код генератора данных моего изображения:
train_data_generator = ImageDataGenerator(rescale=1.0 / 255.0, preprocessing_function=preprocess_input,
horizontal_flip=True,
vertical_flip=True,
brightness_range=[0.2, 1.0])
test_data_generator = ImageDataGenerator(rescale=1.0 / 255.0, preprocessing_function=preprocess_input)
train_generator = train_data_generator.flow_from_directory(
'trainset/',
target_size=(image_size, image_size),
batch_size=BATCH_SIZE_TRAINING,
class_mode='categorical')
test_generator = test_data_generator.flow_from_directory(
'testset/',
target_size=(image_size, image_size),
batch_size=BATCH_SIZE_VALIDATION,
class_mode='categorical')
Мой Код CNN и AdaBoost:
def simple_model():
# create model
model = Sequential()
model.add(Dense(25, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu'))
model.add(Dropout(0.2, input_shape=(x_train.shape[1],)))
model.add(Dense(10, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='adam')
return model
cnn_estimator = KerasRegressor(build_fn= simple_model, epochs=100, batch_size=10, verbose=0)
boosted_cnn = AdaBoostRegressor(base_estimator= cnn_estimator)
Итак, как мне прикрепить мой первый код ко второму коду.