Используя flow_from_dataframe, какое правильное значение для y_col

Я читаю файл 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: Если class_mode="categorical", y_col="label" значения столбца должны быть типом string, list или tuple.

Но мой y_col — это строка. Я получаю ту же ошибку, если просто ввожу "label". Это также работает с x_col.

Может ли кто-нибудь указать мне на мою ошибку?

Спасибо


Решение

читать csv с dtype, например. ул:

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

person Florida Man    schedule 05.06.2019    source источник


Ответы (2)


Вы можете проверить код в github на предмет того, что он на самом деле проверяется, особенно здесь. Предварительная обработка Keras проверяет, что все значения имеют разрешенные типы (str, list или tuple), поэтому проверка не удалась, вы должны проверить, что все значения столбца y_col имеют правильный тип.

person Dr. Snoopy    schedule 05.06.2019

Если ваши метки целочисленные, установите class_mode='raw'

person rajat negi    schedule 01.03.2021