检查输入时出错:预期lstm_1_input具有形状(71,768),但数组具有形状(72,768)

时间:2020-04-06 22:23:12

标签: python tensorflow machine-learning keras deep-learning

我正在加载形状为(((23094,71,768),(23094,19,282))的预训练模型。

当我传递形状为(29116,72,768)的新X值时,它在检查输入时显示错误:预期lstm_1_input具有形状(71,768),但形状为数组( 72,768)。

这是我的模型摘要: 型号:“ sequential_1”


图层(类型)输出形状参数#

lstm_1(LSTM)(无,71,256)1049600


lstm_2(LSTM)(无,71,64)82176


lstm_3(LSTM)(无,32)12416


dense_1(密集)(无,5358)176814


reshape_1(Reshape)(无,19,282)0


activation_1(激活)(无,19,282)0

总参数:1,321,006 可训练的参数:1,321,006 不可训练的参数:0


1 个答案:

答案 0 :(得分:0)

LSTM需要3D数组(批大小,时间步长,功能)。训练时间长度可变的方法有很多(在您的情况下为71,维度= 1)。

在您的情况下,样本量= 23094、23094(不需要匹配)

时间维数= 71!= 19(如果您具有可变的输入长度,并且在同一批次中所有输入的长度相同,则可以不同,但​​是在模型摘要中,时间维数固定为71,而不是无,因此您必须使用71个时间维度进行训练)

特征尺寸= 768!= 282(必须相同)

只需使用零填充以匹配形状https://www.tensorflow.org/api_docs/python/tf/keras/layers/ZeroPadding2D

此外,提供完整的代码以获取基于代码的答案。