flow_from_directory返回值

tensorflow2.0 ImageDataGenerator中关于flow_from_directory返回值的方法列举

ImageDataGenerator

tensorflow中用于数据读入处理等问题的包,使用起来较为方便,也提供了很多方法供大家灵活使用具体见链接 link.

ImageDataGenerator.flow_from_directory

由于在模型测试时需要对数据进行详细了解,故记录一下flow_from_directory返回的方法。本人的数据集格式如下:
其中每个文件夹存放分类的图片
用于测试的图片生成器代码如下

// An highlighted block
validation_image_generator = ImageDataGenerator(rescale=1./255) 

val_data_gen = validation_image_generator.flow_from_directory(directory='Test',
                                                              batch_size=4, 
                                                              shuffle=False,  
                                                              target_size=(224, 224), 
                                                           class_mode='categorical') 

介绍val_data_gen 自带的方法:

  1. val_data_gen.n 或 val_data_gen.samples :返回directory中所有图片的数量,本人为Test文件夹下所有图片的数量;
  2. val_data_gen.batch_size :为设置的batch_size大小,本例为4;
  3. val_data_gen.num_classes 或 val_data_gen.labels : 共几类,本例中文件夹下分为Positive、Negative、Neutral,故为3;
  4. val_data_gen._filepaths 或 val_data_gen.filepaths :返回所有图片路径列表,本例为[‘Test/Negative/Picture_00000.jpg’, ‘Test/Negative/Picture_00027.jpg’… ‘Test/Negative/Picture_00028.jpg’] ;
  5. val_data_gen.class_indices : 返回类别对应的类别数字,本例为 {‘Negative’: 0, ‘Neutral’: 1, ‘Positive’: 2};
  6. val_data_gen.directory :返回根目录,本例为 Test;
  7. val_data_gen.filenames :返回每类图片的路径,本例为 Negative/Picture_00000.jpg 等;
  8. 还有其他一些方法,可以使用dir(val_data_gen)方法自行测试。
`flow_from_directory` 是 Keras 中一个用于从目录中读取图像数据的函数。它会从指定的目录读取图像文件,并将它们转换为可以输入到神经网络中的张量。这个函数还可以自动进行数据增强,以提高模型的泛化能力。 使用 `flow_from_directory` 函数需要指定以下参数: - `directory`: 字符串,图像所在的目录路径。 - `target_size`: 元组,将图像缩放到的大小。 - `color_mode`: 颜色模式,可以是 "grayscale"(灰度图像)或 "rgb"(彩色图像)。 - `batch_size`: 整数,每个批次中包含的样本数。 - `class_mode`: 类别模式,可以是 "categorical"(多分类问题)、"binary"(二分类问题)或 None(无标签数据)。 - `shuffle`: 是否打乱样本的顺序。 - `seed`: 随机种子,用于打乱样本顺序的随机数生成器的种子值。 - `subset`: 子集类型,可以是 "training"(训练集)、"validation"(验证集)或 "testing"(测试集)。 `flow_from_directory` 函数会返回一个迭代器,可以使用 `next()` 方法从中获取一个批次的数据。例如: ``` from keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator(rescale=1./255) train_generator = datagen.flow_from_directory( 'data/train', target_size=(224, 224), batch_size=32, class_mode='categorical') x_batch, y_batch = next(train_generator) ``` 这个例子中,我们使用一个 `ImageDataGenerator` 对象来对图像进行归一化处理,然后使用 `flow_from_directory` 函数从 "data/train" 目录中读取图像。每个批次包含 32 张大小为 (224, 224) 的彩色图像,标签使用多分类模式表示。最后,我们可以使用 `next()` 方法从迭代器中获取一个批次的数据。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值