我的目录结构如下。
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()
方法本身来控制它?
答案 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"])
这将仅读取目录dog
和cat
中的图像,省略elephant
目录并为其提供不同的类别标签。