使用Keras进行数据增强

时间:2017-07-18 09:15:48

标签: python image-processing machine-learning neural-network keras

我正在使用CNN进行图像训练,之前我正在使用keras对训练数据集进行数据增强。

我对数据扩充有一些疑问:

  1. 转换是否取决于fit_generator()
  2. 中指定的纪元
  3. 是否有最大数量的纪元用于获取增强图像?
  4. 是否有最佳的纪元数,可以提供所有可能的输出增强数据?
  5. 应用于图像的变换是顺序还是随机。
  6. 输出图像是否会在指定数量的纪元后重复?如果是,那么那个数字是什么,如果没有,那么最好的数字是什么?例如,假设我有一个我用rotation_range传递的图像为20.然后,我知道最初随机旋转将应用于rotation_range内的图像,并且两个后续图像将不相同。但我想知道是否有任何角度模式将应用于图像。并且在经过一些迭代后是否会重复相同的模式?
  7. 我正在使用

    for images_iter, labels_iter in datagen.flow(image_dataset, Labels, batch_size=len(image_dataset), shuffle=False):
    

    获取增强数据。

    其中, image_dataset 形状[1,28,28,1] 的图像数据集,标签只是 0 < /强>

1 个答案:

答案 0 :(得分:2)

逐一回答您的问题:

  1. 不,生成集合时,变换只计算一次。正如你所说,你在训练之前做的就是这样。
  2. 不,没有用于获取增强图像的最大纪元数&#39;。
  3. 这取决于您的网络拓扑以及您要完成的任务。
  4. 这应该按顺序排列,但您可以随时随机播放。
  5. 编辑:

    1. 在该示例之后:不,没有生成多个图像。发电机会无限制地直到你停下来。
    2. 请参阅:https://keras.io/preprocessing/image/