Keras flow_from_directory()仅从选定的子目录中读取

时间:2019-03-24 20:40:17

标签: tensorflow keras deep-learning conv-neural-network

我的目录结构如下。

train
|- dog --> contains image files of dogs
|- cat --> contains image files of cats
|- elephant --> contains image files of elephants

我想训练CNN来识别动物,但只识别猫和狗而不是大象。

我想使用keras ImageDataGenerator类来扩充数据,并使用flow_from_directory()方法来读取图像文件。

train_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(directory='train', class_mode='categorical', target_size=(64,64), batch_size=16, shuffle=True)

上面的代码将从'train'的所有子目录中读取数据,我不希望这样做。一种选择是创建一个新目录,并复制“ dog”和“ cat”子目录以及其中的文件。但是有没有一种方法可以通过flow_from_directory()方法本身来控制它?

1 个答案:

答案 0 :(得分:2)

假设我以正确的方式理解了您的问题,这应该会对您有所帮助:

train_generator = train_datagen.flow_from_directory(directory='train', class_mode='categorical', target_size=(64,64), batch_size=16, shuffle=True, classes=["dog", "cat"])

这将仅读取目录dogcat中的图像,省略elephant目录并为其提供不同的类别标签。