文件夹

时间:2018-03-28 13:12:58

标签: python keras

我对keras文档中的代码有疑问。在下面的代码中,它只加载了1个图像。如果我在一个文件夹中有10个图像,我将如何使用此代码,因为load_img函数只加载1个图像,我想加载包含10个图像的文件夹并在所有图像上应用数据生成,是否有任何帮助?

from keras.preprocessing.image import ImageDataGenerator, 
array_to_img, img_to_array, load_img

datagen = ImageDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')

img = load_img('data/train/cats/cat.0.jpg') # this is a PIL image
x = img_to_array(img)
x = x.reshape((1,) + x.shape)

i = 0
for batch in datagen.flow(x, batch_size=1,
save_to_dir='preview', save_prefix='cat', save_format='jpeg'):
i += 1
if i > 20:
break

1 个答案:

答案 0 :(得分:0)

你可以使用ImageDataGenerator的flow_from_directory函数,keras会自动为你做这件事

datagen=ImageDataGenerator()
generator=datagen.flow_from_directory(directory)

修改
您应该具有以下文件夹结构

directory/
    class_label_1/
       image1
       image2
       .
       .
    class_label_2/
       .
       .

您的父目录应该为每个类都有一个文件夹,该类文件夹应该包含属于该类的图像。选择文件夹名称作为标签