首页 > 解决方案 > 每个时期应用不同的数据增强

问题描述

我刚刚阅读了一篇论文,该论文在每个时期应用特定数据转换时会引起准确性的提高。由于它的参数是随机生成的,因此想法是在每个 epoch 中,转换都会以某种方式略有不同。

更准确地说,我有一个对图像进行二元分类的 CNN。我的数据转换函数创建了一个掩码,使某些图像中的一些随机像素无效。目标是让算法通过强迫自己查看图像的不同部分来学习。

datagen = ImageDataGenerator(rotation_range=0.3,
                             horizontal_flip=True,
                             fill_mode='nearest',
                             rescale = 1./255,
                             preprocessing_function=random_mask)

我希望这个掩码在每个时期都不同,这样在每次新的迭代中,我的算法都会从我的批次中学习不同版本的图像。

当我运行我的 CNN 时,我调用以下命令:

history = model.fit(X_train, y_train, batch_size=32, epochs=epochs, steps_per_epoch=len(X_train)/batch_size, 
                    callbacks=[reduce_lr, model_chkpoint], validation_data=(X_test, y_test), class_weight=classWeight)

其中 X_train 和 y_train 只是两个包含图像像素及其相应标签的 numpy 数组。

标签: pythonkerasepoch

解决方案


推荐阅读