我是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个标量输出的数组。我小心翼翼地不使用“尺寸”一词,因为我认为这是让我感到困惑的地方,从技术上讲,两者均为一维。我确定我的模型有很多问题,在此之后我将不得不解决这些问题。但是,我只想让此预测功能正常工作,以便我可以理解我的输出是什么样子。
在此先感谢您的帮助。
答案 0 :(得分:0)
Keras Model
隐含地期望您的数据(作为np array
传递)具有批量大小。当前,您的模型将testnote
解释为形状1的3个示例。尝试按如下所示将批次尺寸添加到“ testnote”中:
testnote = testnote.reshape(1,-1)
这将重塑testnote
的形状以形成(1,3),以便您将批处理大小明确定义为1。