当我使用ImageDataGenerator.flow_from_directory时,如何获得真正的标签

时间:2017-11-28 15:48:22

标签: keras

我有一个代码运行在哪里作为数据输入我有两个numpy数组(X_train,y_true)。我喜欢ImageDataGenerator的数据扩充。

我可以使用它来获取相应的numpy数组吗?

以下是一些代码:

train_data_dir="Path to directory containing for each class a directory of images"

from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(rescale=1. / 255,
                         horizontal_flip=True,
                         rotation_range=360)
generator = datagen.flow_from_directory(
       train_data_dir,
       target_size=(img_width, img_height),
       batch_size=22,
       class_mode=None,
       shuffle=True)

x=generator.next()

现在x是一个np.array,包含我的两个类的图像。我可以找到带有标签的相应数组吗?

1 个答案:

答案 0 :(得分:4)

这很简单。生成器必须同时输出x和y:

x, y = generator.next()

另一个选项取决于你的python:

x, y = next(generator)

您的生成器未返回任何Y,但,因为您使用了class_mode=None

您应该使用其中一个来使生成器生成标签:

  • 分类
  • 二进制
  • 稀疏

通常,对于多类目的,您会选择“分类”。对于一个类(是/否),使用“二进制”。