使用 flow_from_dataframe y_col 的正确 "value" 是什么

Using flow_from_dataframe what is the correct "value" for y_col

我正在读取一个包含 pandas 的 csv 文件,并提供存储在 colname

中的列名
colnames=['file', 'label'] 
# Read data from file 
data = pd.read_csv('./Hand_Annotations_2.csv',names=colnames, header=None)
# Preview the first 5 lines of the loaded data 
data.head()

然后,我使用ImageDataGenerator()flow_fromdataframe()来获取批量数据

train_generator=datagen.flow_from_dataframe(dataframe=data,
                                            directory=None, 
                                            x_col=colnames[0], 
                                            y_col=colnames[1],
                                            class_indices=IDmap,
                                            class_mode="categorical", target_size=(224,224), batch_size=32)

但是我得到一个错误,如下:

TypeError: If class_mode="categorical", y_col="label" column values must be type string, list or tuple.

但是我的y_col是一个字符串。如果我只输入 "label",我会得到同样的错误。它似乎也适用于 x_col.

有人可以指出我的错误吗?

谢谢


解决方案

使用数据类型读取 csv,例如海峡:

data = pd.read_csv('./Hand_Annotations_2.csv',dtype=str,names=colnames, header=None)

您可以检查 github 中的代码以了解实际检查的内容,特别是 here。 Keras 预处理正在检查所有值是否具有允许的类型(str、列表或元组),因此检查失败,您必须检查 y_col 列的所有值是否具有正确的类型。

如果你的标签是整数,设置class_mode='raw'