仅在预测时出现Keras形状问题



所以我在这里不知所措。我训练了我的模型,一切正常;但是当我尝试使用预测方法时,我得到以下错误:

ValueError:检查输入时出错:期望dense_1_input具有形状(64,),但得到形状(1,)数组

我觉得很奇怪,因为我给出的输入是(64,),我甚至在cli中返回了这样的形状

print(type(test_x[0]))
print(test_x[0].shape)

返回

& lt;类numpy.ndarray的祝辞

(64年)

在我看来,当我使用

时,它应该工作
print(str(np.argmax(model.predict(test_x[0]))))

谁能指出我做错了什么?完整错误输出:

File "/home/drbunsen/Downloads/code/neural/random/neuralplay .py",第115行,在
main()
File "/home/drbunsen/Downloads/code/neural/random/neuralplay .py",第110行,在main
print(np.argmax(model.predict(train_x[0]))
File "/home/drbunsen/.local/lib/python3.7/site-packages/keras/engine/training.py",第1441行,在predict
x, _,_ = self._standardize_user_data (x)
文件"/home/drbunsen。local/lib/python3.7/网站/keras/发动机/training.py", 579行,在_standardize_user_data
exception_prefix ="输入")
文件"/home/drbunsen。local/lib/python3.7/网站/keras/发动机/training_utils.py", 145行,在standardize_input_data
str (data_shape))
ValueError:检查输入时错误:预期dense_1_input形状(64年),但有阵列形状(1)

模型期望输入形状为:(number_of_samples,number_of_features).

如果你想传递1个样本,每个样本有64个特征,那么输入的形状应该是这样的:(1,64).
因为你用64个特征训练你的模型,输入应该总是(N,64)形状。

如果你传递一个形状为(64,)的数组,模型认为它是64个样本,有1个特征,这与64个期望的特征不兼容。

要解决您的问题,请输入如下:

print(str(np.argmax(model.predict(test_x[0].reshape(1,-1))))) # add first dimension

相关内容

  • 没有找到相关文章

最新更新