在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,)
This是test_data[0]
的形状和细节。我该如何解决这个问题?
答案 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]
)。