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'>"})
答案 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)
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)
由于内存不足问题导致主机崩溃与这有关:
答案 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)