我正在使用 CNN 进行图像训练,在此之前我正在使用 keras 对训练数据集执行数据增强。
我有一些关于数据增强的问题:
- 变换是否取决于
fit_generator()
中指定的纪元? - 获取增强图像是否有最大 epoch 数?
- 是否存在可以给出所有可能的输出增强数据的最佳纪元数?
- 对图像应用的变换是顺序还是随机。
- 输出图像是否会在指定的纪元数后重复?如果是,那么该数字是多少,如果不是,那么最好使用的数字是什么?例如,假设我有一个图像,我传递的rotation_range为20。然后,我知道最初随机旋转将应用于rotation_range内的图像,并且随后的两个图像将不相同。但我想知道是否有任何角度模式可以应用于图像。经过一定次数的迭代后是否会重复相同的模式?
我正在使用
for images_iter, labels_iter in datagen.flow(image_dataset, Labels, batch_size=len(image_dataset), shuffle=False):
用于获取增强数据。
其中,image_dataset是形状[1, 28, 28, 1]的图像数据集,Labels只是0.
最佳答案
一一回答您的问题:
- 不,当您生成集合时,变换仅计算一次。正如你所说,你在训练之前就这样做了,仅此而已。
- 不,不存在“获取增强图像的最大纪元数”之类的东西。
- 这取决于您的网络拓扑以及您想要完成的任务。
- 这应该是按顺序进行的,但您可以随时随机播放您的集合。
编辑:
- 在该示例之后:不,没有生成大量图像。发电机将无限地跳动,直到您停止它。
关于python - 使用 Keras 进行数据增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45162436/