keras ImageDataGenerator类的基本函数使用介绍(3)flow_from_dataframe函数实例

(1)flow_from_dataframe函数实例

参考文章
keras中文官方文档flow_from_dataframe()

flow_from_dataframe原文

参考

flow_from_dataframe()

我们需要train训练集图片文件都放在一个文件夹里,
然后csv文件的形式是文件名对应类标签,
然后调用flow_from_dataframe()就可以

  1. 传入该csv文件名 和 图像所在的文件夹
  2. 传入x_col: 字符串,dataframe 中包含目标图像文件夹的目录的列。
  3. y_col: 字符串或字符串列表,dataframe 中将作为目标数据的列。
  4. subset 在指定了validation的时候使用
  5. batch_size
  6. shuffle
  7. class_mode =“categorical”,
  8. target_size =(32,32)

开始~
首先,下载数据集并将图像文件保存在单个目录下
例如,我将使用cifar-10数据集
下载并解压缩train.7z和test.7z,将获得 “train”的文件夹和“test”文件夹
下载trainLabels.csv文件,该文件将训练图像的文件名映射到类名
在这里插入图片描述
导入包并使用pandas读取CSV文件

from keras.models import Sequential
from keras.preprocessing.image import ImageDataGenerator
from keras.layers import Dense, Activation, Flatten, Dropout, BatchNormalization
from keras.layers import Conv2D, MaxPooling2D
from keras import regularizers, optimizers
import pandas as pd
import numpy as np
def append_ext(fn):
    return fn+".png"
traindf=pd.read_csv(./trainLabels.csv”,dtype=str)
testdf=pd.read_csv("./sampleSubmission.csv",dtype=str)
traindf["id"]=traindf["id"].apply(appe
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`flow_from_dataframe` 是 Keras 中用于从 Pandas DataFrame 中读取图像数据的方法,它可以方便地将 DataFrame 中的图像数据转换为 Keras 模型可以使用的数据流。使用 `flow_from_dataframe` 的步骤如下: 1. 导入必要的库: ```python import pandas as pd from tensorflow.keras.preprocessing.image import ImageDataGenerator ``` 2. 读取包含图像路径和标签的 Pandas DataFrame: ```python df = pd.read_csv('path_to_csv_file') ``` 其中,DataFrame 中应至少包含包含图像路径的列和标签的列。 3. 创建 ImageDataGenerator 对象,并调用 `flow_from_dataframe` 方法: ```python datagen = ImageDataGenerator(rescale=1./255) train_generator = datagen.flow_from_dataframe( dataframe=df, directory='path_to_directory_containing_images', x_col='image_path_col_name', y_col='label_col_name', target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical' ) ``` 其中,`rescale` 参数用于对图像进行缩放,`directory` 参数指定包含图像文件的目录路径,`x_col` 参数指定 DataFrame 中包含图像路径的列名,`y_col` 参数指定 DataFrame 中包含标签的列名,`target_size` 参数指定图像大小,`batch_size` 参数指定批大小,`class_mode` 参数指定标签的型,可以是 `categorical` 或 `binary`。 4. 使用生成器训练 Keras 模型: ```python model.fit( train_generator, epochs=num_epochs, steps_per_epoch=num_train_steps, validation_data=val_generator, validation_steps=num_val_steps ) ``` 其中,`train_generator` 是通过 `flow_from_dataframe` 方法创建的训练数据生成器,`num_epochs` 指定训练的轮数,`num_train_steps` 指定训练集中的批次数,`val_generator` 是通过 `flow_from_dataframe` 方法创建的验证数据生成器,`num_val_steps` 指定验证集中的批次数。 这样,就可以使用 `flow_from_dataframe` 方法从 Pandas DataFrame 中读取图像数据并训练 Keras 模型了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值