无法找到可以处理输入的数据适配器:<class'numpy.ndarray'>,(<class'list'>包含类型为{“ <class'int'>”}}的值)

时间:2019-11-03 16:09:31

标签: python list numpy pycharm

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'>"})

9 个答案:

答案 0 :(得分:18)

我面临着同样的问题。原来是列表形式的。我不得不将字段转换成类似numpy的数组:

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

就这样!

答案 1 :(得分:4)

就我而言,问题仅在于y。这是一个清单。在那种情况下,我必须更改

y = np.array(y)

答案 2 :(得分:3)

所以这是新版本的tensorflow的发生,我不确定从哪里来的,但我使用的是2.0.0版本,并且发生了同样的事情

我假设您只是将X数组转换为numpy数组 而是尝试使用dtype作为np.uint8

将“ X”和“ y”转换为numpy数组。

那应该可以解决问题

答案 3 :(得分:1)

ValueError in 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)

答案 4 :(得分:1)

Mahmud的答案修正了[30]节中的TensorFlow教程“基本回归:预测燃油效率”错误。这是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)

感谢Mahmud

答案 5 :(得分:1)

对于遇到此问题的人:

在将数据放入模型之前检查类型。 例如,它应该是

print(type(X)) 
# numpy.ndarray

代替

print(type(X))
# list

简单地将 X 变换为

import numpy as np
X = np.array(X)

答案 6 :(得分:0)

VIKI已经给出了一个很好的答案。我正在添加更多信息。在添加np.array()包装器之前,它也曾经使我的colab主机崩溃。

# 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 dense gradient explanation?

答案 7 :(得分:0)

只需类型转换数组即可。

例如:

import numpy as np
features = np.array(features,dtype='float64')
labels = np.array(labels, dtype ='float64')

答案 8 :(得分:0)

您需要像这样转换 X 和 y:

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

对于 y

y=np.array(y)