1

我尝试使用keras.ImageDataGenerator.flow_from_dataframe,但它无法检测到验证图像,我得到了这个

找到 162770 个经过验证的图像文件名。

找到 0 个经过验证的图像文件名。

谁能帮帮我

我的代码在这里:

traindf=pd.read_csv('E:/color.csv')
columns=["Black", "White", "Red", "Blue", "Green", "Brown", "Yellow"]

datagen=ImageDataGenerator()    
train_generator=datagen.flow_from_dataframe(
dataframe=traindf,
directory="E:/Experimental_Data",
x_col="image_id",
y_col=columns,
subset="training",
batch_size=32,
seed=42,
shuffle=True,
class_mode="raw",
target_size=(178,218))

test_datagen=ImageDataGenerator()
valid_generator=test_datagen.flow_from_dataframe(
dataframe=traindf,
directory="E:/Experimental_Data",
x_col="image_id",
y_col=columns,
subset="validation",
batch_size=32,
seed=42,
shuffle=True,
class_mode="raw",
target_size=(178,218))

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

0

我想这个问题的出现是因为x_coly_col没有相同的维度。您必须准备一个脚本,以便根据某些特征(取决于您的数据),所有x_col组件都有各自的y_col组件。您作为列表包含在列中的所有颜色都必须映射到该脚本中的每个x_col。然后您可以使用该映射来定义您的y_colx_coly_col的尺寸将匹配。之后其余的将正常工作。祝你好运!

于 2021-05-23T02:49:40.887 回答
0

事实证明,您必须在对 ImageDataGenerator 的调用中设置验证分数,例如:

datagen=ImageDataGenerator(validation_split=0.2)

我刚刚遇到了同样的问题,现在已经解决了。在https://keras.io/api/preprocessing/image/#flowfromdataframe-method找到答案:

子集:如果在 ImageDataGenerator 中设置了validation_split,则数据子集(“训练”或“验证”)。

于 2021-06-10T17:40:36.713 回答