Не вдалося знайти адаптер даних, який може обробляти введення: <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

Отже, це відбувається з новою версією tensorflow. Я не впевнений, звідки, але я був на версії 2.0.0, і те саме сталося

Я припускаю, що ви перетворюєте тільки масив X у масив numpy, але скоріше спробуйте перетворити "X", а також "y" на масив numpy, використовуючи dtype як np.uint8

Це повинно вирішити проблему


Дякую за допомогу, вона прекрасно працює зараз для моєї програми. Це свідчить про те, що я збираюсь знизити свій tensorflow і все, здається, спрацює
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

ВІКІ вже сказав добру відповідь. Я додаю більше інформації. Раніше він руйнував хостинг колабу і для мене, перш ніж я додав обгортки 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)

Збій хоста через проблему з пам'яттю пов'язаний із цим:

Пояснення щільного градієнта Tensorflow?


2

У моєму випадку проблема була лише у y. це був список. в такому випадку мені довелося змінити

y = np.array (y)


1

Відповідь Махмуда виправляє в розділі [30] посібник TensorFlow "Основна регресія: спрогнозуйте економію палива". Це два рядки:

Змініть це:

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.