Error al encontrar el adaptador de datos que puede manejar la entrada: <clase 'numpy.ndarray'>, (<clase 'lista'> que contiene valores de tipos {“<clase 'int'>”})

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

el problema de la línea era este

Mostrando error:

ValueError: Failed to find data adapter that can handle input: <class 'numpy.ndarray'>, (<class 'list'> containing values of types {"<class 'int'>"})
Neo
fuente
Por favor, edite su pregunta y agregue más código y contexto, y el rastreo completo del error. Lee cómo preguntar .
Valentino
¿Qué es model? No forma parte de ninguno de los paquetes etiquetados. Mostrar el rastreo completo.
hpaulj

Respuestas:

8

Así que esto está sucediendo en la versión más nueva de tensorflow, no estoy seguro de dónde, pero estaba en la versión 2.0.0 y sucedió lo mismo

Supongo que solo está convirtiendo la matriz X en una matriz numpy, sino que intente convertir 'X' y 'y' a una matriz numpy usando dtype como np.uint8

Eso debería resolver el problema

VIKI
fuente
Gracias por la ayuda, ahora funciona perfectamente para mi programa. Muestra que voy a degradar mi flujo de tensor y todo parece funcionar
Neo
6

Estaba enfrentando el mismo problema. Resulta que era una forma de lista. Tuve que convertir los campos en una matriz numpy como:

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

¡Eso es!

Atharva
fuente
2

VIKI ya dijo una buena respuesta. Estoy agregando más información. También solía bloquear el host Colab para mí, antes de agregar los envoltorios 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)

El bloqueo del host debido a un problema de falta de memoria tiene algo que ver con esto:

¿Tensorflow explicación de gradiente denso?

Geoffrey Anderson
fuente
2

En mi caso el problema fue solo en y. Era una lista. en ese caso tuve que cambiar

y = matriz de np (y)

Mahmud
fuente
1

La respuesta de Mahmud corrige el error del Tutorial TensorFlow "Regresión básica: predecir la eficiencia del combustible" en la sección [30]. Estas son las 2 líneas:

Cambia esto:

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

A esto:

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

Gracias Mahmud

usuario2074145
fuente
0

Simplemente escriba cast the arrays.

por ejemplo:

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