使用 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'
我正在读取一个包含 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'