Не удалось найти адаптер данных, который может обрабатывать ввод: <class 'numpy.ndarray'>, (<class 'list'>, содержащий значения типов {«<class 'int'>»})


12
history = model.fit(X, y, batch_size=32, epochs=40, validation_split=0.1)

проблема линии была в этом

Отображение ошибки:

ValueError: Failed to find data adapter that can handle input: <class 'numpy.ndarray'>, (<class 'list'> containing values of types {"<class 'int'>"})

Пожалуйста, отредактируйте свой вопрос и добавьте больше кода и контекста, а также полную трассировку ошибок. Читайте, как спросить .
Валентино

Что такое model? Он не является частью какого-либо из отмеченных пакетов. Показать полный трекбек.
hpaulj

Ответы:


11

ValueError в TensorFlow

https://pythonprogramming.net/convolutional-neural-network-deep-learning-python-tensorflow-keras/

Я попробовал следующий код и работал для меня:

IMG_SIZE = 50

X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)

y = np.array(y)

history = model.fit(X, y, batch_size=32, epochs=40, validation_split=0.1)

Я должен был также сделать y = np.array (y).
Бикрам

Спасибо. y = np.array (y) добились цели.
Сайкат Холдер

8

Так что это происходит с более новой версией tenorflow, я не уверен, откуда, но я был на версии 2.0.0, и то же самое произошло

Я предполагаю, что вы конвертируете только массив X в массив numpy. Вместо этого попробуйте преобразовать X и y в массив numpy, используя dtype в качестве np.uint8.

Это должно решить проблему


Спасибо за помощь, теперь она отлично работает для моей программы. Это показывает, что я собираюсь понизить свой тензорный поток, и все, кажется, работает
Neo

6

Я столкнулся с той же проблемой. Оказывается, это было в виде списка. Я должен был преобразовать поля в массив, как:

training_padded = np.array(training_padded)
training_labels = np.array(training_labels)
testing_padded = np.array(testing_padded)
testing_labels = np.array(testing_labels)

это оно!


2

Вики уже сказала хороший ответ. Я добавляю больше информации. Раньше он также приводил к краху хоста colab, прежде чем я добавил оболочки np.array ().

# Need to call np.array() around pandas dataframes.
# This crashes the colab host from TF attempting a 32GB memory alloc when np.array() wrappers are not used around pandas dataframes.
# Wrapping also cures warning about "Failed to find data adapter that can handle input"
history = model.fit(x=np.array(tr_X), y=np.array(tr_Y), epochs=3, validation_data=(np.array(va_X), np.array(va_Y)), batch_size=batch_size, steps_per_epoch=spe, validation_freq=5)

Сбой хоста из-за нехватки памяти как-то связан с этим:

Объяснение плотного градиентного потока?


2

В моем случае проблема была только у. это был список. в этом случае я должен был изменить

y = np.array (y)


1

Ответ Махмуда исправляет ошибку TensorFlow Tutorial «Базовая регрессия: прогнозирование эффективности использования топлива» в разделе [30]. Это 2 строки:

Изменить это:

example_batch = normed_train_data[:10]
example_result = model.predict(example_batch)

К этому:

example_batch = np.array(normed_train_data[0:10]) 
example_result = model.predict(example_batch)

Спасибо Махмуд


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.