【问题标题】:keras ImageDataGenerator flow_from_directory generated datakeras ImageDataGenerator flow_from_directory 生成的数据
【发布时间】:2018-03-05 15:10:39
【问题描述】:

我正在尝试查看使用 ImageDataGenerator 进行数据增强的结果。 Keras 读取数据,但似乎没有对它们执行任何生成。我得到了输出:

找到属于 1 个类别的 32 张图片。

但没有生成的图像保存在我在flow_from_directory方法的save_to_dir参数中提到的目录中。

这是我的代码:

from keras.preprocessing.image import ImageDataGenerator,  array_to_img, img_to_array, load_img
from keras import backend as K
K.set_image_dim_ordering('th')

#the path of images to apply augmentation on them
images_path='train'
#create an instance of ImageDataGenerator
datagen = ImageDataGenerator(width_shift_range=0.2,
        height_shift_range=0.2)
datagen.flow_from_directory(directory=images_path, target_size=(480,752),color_mode='grayscale', class_mode=None, save_to_dir='saved',save_prefix='keras_')
img = load_img('train/images/photon10.png')
x = img_to_array(img)
x = x.reshape((1,) + x.shape)
datagen.flow(x,batch_size=1,save_to_dir='saved',save_format='png')

我什至尝试对一张图像进行增强,但没有保存。

可能是什么原因?我是 Keras 的初学者。

注意:类模式是无,因为我没有特定的类别。

【问题讨论】:

  • 您是否确定您的图片位于images_path 的子目录中?

标签: keras


【解决方案1】:

flow_from_directory() 返回一个DirectoryIterator。在您迭代此迭代器之前,不会保存文件。

例如,

iterator = datagen.flow_from_directory(...)
next(iterator)

将一批增强图像保存到save_to_dir。您还可以在迭代器上使用 for 循环来控制将生成多少张图像。

【讨论】:

    【解决方案2】:

    它只是一个声明,你必须使用那个生成器,例如,.next()

    datagen.next()
    

    然后你会在saved看到图片

    【讨论】:

      猜你喜欢
      • 2017-09-05
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      • 2018-11-02
      • 2019-02-22
      • 1970-01-01
      • 2019-11-16
      • 2018-11-17
      相关资源
      最近更新 更多