NLP方向,LSTM模型训练好以后,如何使输入的语句变成LSTM能识别的格式?


先得到了word2vec的词向量,每个词向量是128维

然后,用于训练的数据格式是(34022, 10, 128)。

我的LSTM模型如下:
model = Sequential()
model.add(LSTM(256, dropout_W=0.2, dropout_U=0.2, input_shape=(seq_length, 128)))
model.add(Dropout(0.2))
model.add(Dense(128, activation='sigmoid'))
model.compile(loss='mse', optimizer='adam')

现在让我很迷茫的是,如果我的测试语句的长度不是10,大于10或小于10应该怎么处理呢?比如"I am a good boy",5个词,现在的词向量是[[A..a],[B..b],[C..c],[D..d],[E..e]](每个词是一个128维的词向量,“..”表示省略),此时的数据结构是(5,128),显然,喂到LSTM会报错,因为需要的数据格式是(10,128):
ValueError: cannot reshape array of size 1 into shape (10,128)


我想请问,这种情况如何处理呢?即,如何把LSTM输入的数据变成LSTM要求的格式?例如把(5,128)变成(10,128)

能否请高手指点一下,谢谢哒。

PS:问题来自于“七月在线NLP到Word2vec班”第4课的代码,跑不通。
已邀请:

要回复问题请先登录注册

返回顶部