Используя flow_from_dataframe, что является правильным «значением» для y_col - PullRequest
1 голос
/ 05 июня 2019

Я читаю в 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 = "категорический", y_col = "label" должны иметь тип string, list или tuple.

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

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

Спасибо


Решение

читать csv с помощью dtype, например, str:

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

1 Ответ

1 голос
/ 05 июня 2019

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

...