我正在尝试在Keras中应用自定义图像增强技术。我正在使用fit_generator和生成器来生成图像。我只想在说20个纪元后才开始应用图像增强(因此前20个纪元将没有任何数据增强)。不幸的是,生成器没有纪元的概念。知道怎么做吗?
答案 0 :(得分:0)
最简单的方法是在不进行实时增强的情况下训练20个时间段(使用不带参数的Keras ImageDataGenerator)并使用ModelCheckpoint回调保存模型。然后重新加载模型并继续使用RA进行训练(将ImageDataGenerator与您选择的转换配合使用)。
如果要一步实现该行为,则可以制作自己的ImageDataGenerator版本。您只需要进行以下更改:
public LabelText(char letter, int[] numbers) {
this.letter = letter;
this.numbers = numbers.clone(); // so it will always be unique array here
}
然后,只需在ImageDataGenerator中修改NumpyArrayIterator来增加这些变量,并仅在n_epoch过去之后才调用random_transform。例如。 self.image_data_generator.batch_counter + = 1