Keras报错:InvalidArgumentError: Invalid input_h shape

最近做实验,用到lstm(tf-gpu的keras)。

之前已经用自己的数据训练过,一切正常,没有出现bug,然而,当我重新放入一批新的样本进行训练时,却报错:

Keras报错:InvalidArgumentError: Invalid input_h shape

,错误定位到了模型对验证集进行预测那行。

想到应该是shape出错了,但反反复复查了好几遍,训练集和验证集除了样本数量,其他完全一样。于是在实验室师兄的建议下,查看了模型各层的参数情况:

Keras报错:InvalidArgumentError: Invalid input_h shape

对比一下之前训练集的模型参数情况:

Keras报错:InvalidArgumentError: Invalid input_h shape

明明用的是同一个模型,为什么用我最新的训练集训练完之后模型各层的output shape反而和之前不一样了?

原来的训练集长度是1024,现在的训练集长度是1600,bs我设了200,刚好能整除1600,会不会是因为训练集被整除了,所以模型训练完之后直接默认是200的长度?

我抱着试一试的心态,将我的bs改为了300,然后,可以了!预测能顺利的进行下去!omg,我是什么绝世小天才~(hh,just joking~)

Keras报错:InvalidArgumentError: Invalid input_h shape

虽然问题解决了,但里面的机制我还没有去了解过,可能之后有时间了会去研究研究,弄懂了之后我再来记录吧~