Keras预测形状会变得不正确吗?

时间:2018-08-08 16:03:55

标签: python numpy tensorflow keras 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)

我的一致输出为testnote的形状为“(3,)”,然后为我的预测行产生了一个错误:“ ValueError:检查输入时出错:预期density_1_input具有形状(3,)但形状为数组( 1,)“

当我刚刚确认形状为(3,)时,Keras读其具有形状(1,)的testnote感觉如何?它对“形状”的含义是否使用某种不同的标准?我已经尝试过重塑形状并添加括号和其他一些东西,但是我真的不知道问题出在哪里。

对于其他情况,该模型采用一个具有3个标量输入(代表音高,速度和乐器类)的数组,并输出一个具有1025个标量输出的数组。我小心翼翼地不使用“尺寸”一词,因为我认为这是让我感到困惑的地方,从技术上讲,两者均为一维。我确定我的模型有很多问题,在此之后我将不得不解决这些问题。但是,我只想让此预测功能正常工作,以便我可以理解我的输出是什么样子。

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Keras Model隐含地期望您的数据(作为np array传递)具有批量大小。当前,您的模型将testnote解释为形状1的3个示例。尝试按如下所示将批次尺寸添加到“ testnote”中:

testnote = testnote.reshape(1,-1)

这将重塑testnote的形状以形成(1,3),以便您将批处理大小明确定义为1。