首页 文章

数据增加会导致CNN的学习速度变慢吗? [关闭]

提问于
浏览
-3

我正在研究图像像素分类问题并使用数据增强(在Keras中) .

所以我将数据转换(旋转,翻转)应用于图像补丁 . 我的CNN数据增强和训练代码如下 .

datagen = ImageDataGenerator(
    rotation_range=40,
       horizontal_flip=True,
    vertical_flip=True,
)

batch_size=16
epochs=50

# compile the model
model.compile(loss='categorical_crossentropy',
          optimizer=Adam(),
          metrics=['accuracy'])


model_checkpoint = ModelCheckpoint('myweights.hdf5', monitor='val_acc', verbose=1, save_best_only=True, mode='max')

callbacks_list = [plot_losses,model_checkpoint]

history=model.fit_generator(datagen.flow(x_train, y_train, batch_size=batch_size),
                    steps_per_epoch=x_train.shape[0] // batch_size,
                    callbacks=callbacks_list,
                    validation_data = datagen.flow(x_valid, y_valid, batch_size=batch_size),
                    validation_steps=x_valid.shape[0] // batch_size,
                    epochs = epochs, verbose = 1)

我的火车/验证准确性和损失情节如下:
enter image description here

我可以看到准确性和损失率普遍持续增加,这正是我们想要的 . 但它在20个时代中非常缓慢 . 没有数据增加,我的准确性会更快 .

那么为什么数据增加导致如此缓慢的学习过程(大约48%到58%的训练/有效准确度在20个时期内增加)?

我使用 Adam optimizer 使用指数学习率衰减,所以我不相信新的学习率计划会影响很大,除非我遗漏了什么 . 任何见解都是受欢迎的 .

1 回答

  • 2

    当您的模型使用数据扩充来训练较慢时,预计会出现这种情况 . 增强翻转,旋转并通常转换图像以扩大我们的数据集 . 这是通过比GPU慢的CPU完成的 .

    我们使用增强不是为了速度而是为了提高准确性 .

相关问题