【问题标题】:How to find how many Image Generated By ImageDataGenerator如何查找 ImageDataGenerator 生成的图像数量
【发布时间】:2018-06-08 18:44:01
【问题描述】:

您好,我想问您一个关于 Keras ImageDataGenerator 的问题。我可以确定将创建多少张增强图像吗?或者如何在增强后找到训练图像集的大小。在 Keras 文档中,流函数描述是:“采用 numpy 数据和标签数组,并生成批量增强/标准化数据。在无限循环中无限生成批次。”但是生成了多少图像?

例如下面的代码生成多少张图片?无限?

from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from matplotlib import pyplot
import numpy as np

datagen = ImageDataGenerator(
        rotation_range=40,
        width_shift_range=0.2,
        height_shift_range=0.2,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True,
        fill_mode='nearest')
img=load_img('cat.1.jpg')
x=img_to_array(img)
x = x.reshape((1,) + x.shape) 
print x.shape
h=datagen.flow(x)

【问题讨论】:

  • steps_per_epoch * batch_size 在这里回答stackoverflow.com/questions/49783945/…
  • 嗨,阿德兰。我知道你的意思,而问题是生成器生成过程中有多少变化。
  • 我已经得到了关于这个问题的提示。

标签: python image-processing keras deep-learning


【解决方案1】:

您说的是对的,您可以从一张图像中生成无限数。实际上这是正常的,只考虑从初始旋转可以生成的图像数量,它是无限的,因为对于每个旋转角度值,您都可以生成不同的图像。为了确认这一点,我将显示来自keras documentation 的代码

for e in range(epochs):
    print('Epoch', e)
    batches = 0
    for x_batch, y_batch in datagen.flow(x_train, y_train, batch_size=32):
        model.fit(x_batch, y_batch)
        batches += 1
        if batches >= len(x_train) / 32:
            # we need to break the loop by hand because
            # the generator loops indefinitely
            break

请注意,他们说生成器无限循环,这确认生成了无限数量的图像

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2018-03-05
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2018-10-12
    相关资源
    最近更新 更多