Impossible de trouver l'adaptateur de données qui peut gérer l'entrée: <class 'numpy.ndarray'>, (<class 'list'> contenant des valeurs de types {“<class 'int'>”})

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

le problème de ligne était-ce

Affichage d'une erreur:

ValueError: Failed to find data adapter that can handle input: <class 'numpy.ndarray'>, (<class 'list'> containing values of types {"<class 'int'>"})
Néo
la source
Veuillez modifier votre question et ajouter plus de code et de contexte, ainsi que la trace d'erreur complète. Lisez comment demander .
Valentino
Qu'est-ce que c'est model? Il ne fait partie d'aucun des packages balisés. Afficher la trace complète.
hpaulj

Réponses:

8

Donc, cela se produit la version la plus récente de tensorflow, je ne sais pas d'où mais j'étais sur la version 2.0.0 et cette même chose s'est produite

Je suppose que vous ne convertissez que le tableau X en un tableau numpy Mais essayez plutôt de convertir 'X' ainsi que 'y' en tableau numpy en utilisant le dtype comme np.uint8

Cela devrait résoudre le problème

VIKI
la source
Merci pour l'aide, cela fonctionne parfaitement maintenant pour mon programme. Cela montre que je vais rétrograder mon tensorflow et tout semble fonctionner
Neo
6

J'étais confronté au même problème. Il s'avère que c'était un sous la forme d'une liste. J'ai dû convertir les champs en un tableau numpy comme:

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

c'est ça!

Atharva
la source
2

VIKI a déjà dit une bonne réponse. J'ajoute plus d'informations. Cela faisait planter l'hôte colab pour moi aussi, avant d'ajouter les wrappers 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)

Plantage de l'hôte en raison d'un problème de mémoire insuffisante a quelque chose à voir avec ceci:

Explication du gradient dense Tensorflow?

Geoffrey Anderson
la source
2

Dans mon cas, le problème était uniquement en y. c'était une liste. dans ce cas, j'ai dû changer

y = np.array (y)

Mahmud
la source
1

La réponse de Mahmud corrige l'erreur du didacticiel TensorFlow "Régression de base: prédire l'efficacité énergétique" dans la section [30]. Ce sont les 2 lignes:

Change ça:

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

Pour ça:

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

Merci Mahmud

user2074145
la source
0

Tapez simplement cast the arrays.

par exemple:

import numpy as np
features = np.array(features,dtype='float64')
labels = np.array(labels, dtype ='float64')
Md. Iqbal Hossain Joy
la source