python - 使用 Keras 进行数据增强

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

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

我有一些关于数据增强的问题:

  1. 变换是否取决于 fit_generator() 中指定的纪元?
  2. 获取增强图像是否有最大 epoch 数?
  3. 是否存在可以给出所有可能的输出增强数据的最佳纪元数?
  4. 对图像应用的变换是顺序还是随机。
  5. 输出图像是否会在指定的纪元数后重复?如果是,那么该数字是多少,如果不是,那么最好使用的数字是什么?例如,假设我有一个图像,我传递的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.

最佳答案

一一回答您的问题:

  1. 不,当您生成集合时,变换仅计算一次。正如你所说,你在训练之前就这样做了,仅此而已。
  2. 不,不存在“获取增强图像的最大纪元数”之类的东西。
  3. 这取决于您的网络拓扑以及您想要完成的任务。
  4. 这应该是按顺序进行的,但您可以随时随机播放您的集合。

编辑:

  • 在该示例之后:不,没有生成大量图像。发电机将无限地跳动,直到您停止它。
  • 参见:https://keras.io/preprocessing/image/

    关于python - 使用 Keras 进行数据增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45162436/

    相关文章:

    python - Base64解码

    python - 元类 : why method is not inherited from Base class?

    python - 根据python中的索引列表获取列表中的元素

    python - 使用命令行参数从 Python 运行 C 可执行文件

    java - 图像中的颜色优势和直方图的使用

    java - 层次聚类中的距离/接近矩阵

    machine-learning - 梯度下降似乎失败了

    c++ - addWeighted 函数中的 OpenCV( Gamma )

    opencv - 在给定图像上找到十字及其方向

    python - 计算海量数据集多元线性回归的性能问题