ValueError:检查输入时出错:预期embedding_1_input具有形状(256,)但具有形状(1,)的数组

时间:2020-04-13 09:48:29

标签: python tensorflow machine-learning keras tf.keras

this tutorial中运行代码时出现一些错误。我想预测一些测试数据。当我运行以下命令时,它将起作用:

res = model.predict(test_data[0:2], verbose=1)   # this works
[[0.25896776]
 [0.9984256 ]]

但是,当我运行以下代码时:

res = model.predict(test_data[0], verbose=1)     # this does not work 

它给了我以下错误:

ValueError: Error when checking input: expected embedding_1_input to have shape (256,) but got array with shape (1,)

Thistest_data[0]的形状和细节。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

简短答案:使用test_data[0:1]代替test_data[0]

长答案:Keras / TF模型适用于批处理输入样本。因此,当您仅给他们一个输入样本时,它的形状仍应为(1, sample_shape)。但是,当像test_data那样切片test_data[0]数组时,它会为您提供第一个元素,其中第一个轴/维度被删除,即形状为(sample_shape,)(在这种情况下为{{1 }}。要解决此问题,请使用(256,)以保留第一个轴/尺寸(即形状为test_data[0:1])。