Falha ao localizar o adaptador de dados que pode manipular a entrada: <class 'numpy.ndarray'>, (<class 'list'> contendo valores dos tipos {"<class 'int'>"})

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

o problema de linha era este

Mostrando erro:

ValueError: Failed to find data adapter that can handle input: <class 'numpy.ndarray'>, (<class 'list'> containing values of types {"<class 'int'>"})
Neo
fonte
Por favor, editar a sua pergunta e adicionar mais código e contexto, e o rastreamento de erro completa. Leia como perguntar .
Valentino
O que é model? Não faz parte de nenhum dos pacotes marcados. Mostre o rastreamento completo.
hpaulj

Respostas:

8

Então, isso está acontecendo na versão mais recente do tensorflow. Não tenho certeza de onde, mas eu estava na versão 2.0.0 e aconteceu a mesma coisa.

Estou assumindo que você está apenas convertendo a matriz X em uma matriz numpy. Em vez disso, tente converter 'X' e 'y' em array numpy usando o dtype como np.uint8

Isso deve resolver o problema

VIKI
fonte
Obrigado pela ajuda, ele funciona perfeitamente agora para o meu programa. Isso mostra que eu estou indo fazer o downgrade minha tensorflow e tudo parece ser trabalho
Neo
6

Eu estava enfrentando o mesmo problema. Acontece que era um sob a forma de uma lista. Eu tive que converter os campos em uma 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)

é isso aí!

Atharva
fonte
2

VIKI já disse uma boa resposta. Estou adicionando mais informações. Ele costumava travar o host colab para mim também, antes de adicionar os 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)

Falha no host devido a problemas de falta de memória tem algo a ver com isso:

Explicação do gradiente denso de fluxo de tensor?

Geoffrey Anderson
fonte
2

No meu caso, o problema estava apenas em y. era uma lista. Nesse caso, eu tive que mudar

y = matriz np (y)

Mahmud
fonte
1

A resposta de Mahmud corrige o erro "Regressão básica: prever a eficiência de combustível" do Tutorial do TensorFlow na seção [30]. Estas são as 2 linhas:

Mude isso:

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

Para isso:

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

Graças Mahmud

user2074145
fonte
0

Basta digitar converter as matrizes.

por exemplo:

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