Keras 预测形状不正确?

Keras predict getting incorrect shape?

我是 Keras 的新手,正在尝试测试我刚刚训练的模型。

我正在使用 Tensorflow 后端和 Python 3.

但是,我输入的形状和 Keras 错误中说的形状完全不同。这是我的代码:

testnote = np.zeros((3,))
testnote[0] = 70
testnote[1] = 70
print(testnote.shape)
pred = model.predict(testnote)
print(pred)

对于测试笔记的形状,我的一致输出是“(3,)”,然后是我的预测线的错误:"ValueError: Error when checking input: expected dense_1_input to have shape (3,) but got array with shape (1,)"

当我刚刚确认形状为 (3,) 时,Keras 将测试笔记读取为形状 (1,) 是怎么回事? "shape" 的含义是否使用了某种不同的标准?我试过重塑和添加括号以及其他一些东西,但我真的不知道问题出在哪里。

对于额外的上下文,该模型接受一个包含 3 个标量输入(代表音高、速度和乐器 class)的数组,并输出一个包含 1025 个标量输出的数组。我小心翼翼地没有使用 "dimension" 这个词,因为我认为这是我感到困惑的地方,而且从技术上讲,两者都只是一维的。我确信我的模型有很多问题,我必须在接下来的时间里解决这些问题。但是,我只想让这个预测函数起作用,这样我就可以理解我的输出是什么样子的。

在此先感谢您的帮助。

Keras Model 隐含地期望您的数据(作为 np array 传递)具有批量大小的维度。目前,您的模型正在将 testnote 解释为形状 1 的 3 个示例。尝试将批量维度添加到 'testnote',如下所示:

testnote = testnote.reshape(1,-1)

这会将 testnote 重塑为 (1, 3),这样您就可以将批量大小明确定义为 1。