我在目录
train_data = 'dataset/train'
中有一组用于手写阿拉伯字母的图像,但它只包含一个文件夹中的图像,并且没有划分为子文件夹,以便 ImageDataGenerator().flow_from_directory(train_data, class_mode='categorical', batch_size=64
函数理解我们想要分类的类。
当我第一次使用 Keras 进行 CNN 时,图像在训练目录中划分如下:
dataset/training_set/cats
和 dataset/training_set/dogs
,同样适用于测试集目录,ImageDataGenerator().flow_from_directory()
的输出给了我这一行:Found 8000 images belonging to 2 classes.
文件夹中的图像是这样命名的:
id_1_label_1.png
id_2_label_2.png
这是一张图片,这样更清楚:
我的目录中的训练数据
标签是文件名的一部分,如上所示。
我尝试运行以下代码来读取图像:
train_datagen = ImageDataGenerator(rescale = 1./255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True)
training_set = train_datagen.flow_from_directory('dataset/train',
target_size = (64, 64),
batch_size = 32,
class_mode = 'categorical')
但它给了我这个输出:
Found 0 images belonging to 0 classes.
如何使用 Keras for CNN 加载数据,以便
ImageDataGenerator
了解我们有多少个类?
请将阿拉伯字母分类并为每个字母创建一个子文件夹 分类。这是必要的,因为
ImageDataGenerator.flow_from_directory()
只能自动标记图像
如果它们被组织到主目录中的子文件夹中。如果所有图像
混合在一个文件夹中,它将无法正常工作。请参考这个gist