小编Hen*_* .H的帖子

如何将张量重塑为 LSTM?

我在 Keras 中编码时遇到一些问题。我需要使用两种类型的嵌入处理两个顺序输入,一种是字嵌入,另一种是 doc2vec 嵌入,两者都是dim=300. 然后我将把这两个向量连接成一个更长的向量,因为我想从中获得一些堆叠的特征。然而,这两个嵌入可能位于不同的空间中,因此我必须将这两个向量映射到同一个向量中nn.flatten()。然后我需要将 flatten 的输出向量输入到 LSTM 模型。但编译器抱怨说Input 0 is incompatible with lstm_1: expected ndim=3, found ndim=2,我根本没有设置过ndim=3,而且我不知道如何将向量重塑为具有正确形状的新输入。请帮忙解决这个问题。

n_hidden = 50

batch_size = 64

def classification_softmax(left, right):
''' Helper function for the similarity estimate of the LSTMs outputs'''
return K.abs(left - right)
embedding_layer = Embedding(len(embeddings), 300, weights=[embeddings], input_length=max_seq_length,
                            trainable=False)


embedding_cfg_layer =  Embedding(len(cfg_embedding_matrix), 300, weights=[cfg_embedding_matrix], input_length=1,
                            trainable=False)


#cfg_embedding_l=krs.layers.Flatten()(embedding_cfg_layer(cfg_left_input))
#cfg_embedding_r=krs.layers.Flatten()(embedding_cfg_layer(cfg_right_input))
#encoded_left = krs.layers.Concatenate(axis=1)([krs.layers.Flatten()(embedding_layer(left_input)),cfg_embedding_l])
#encoded_right = krs.layers.Concatenate(axis=1)([krs.layers.Flatten()(embedding_layer(right_input)), cfg_embedding_r])

encoded_left = encoded_left
encoded_right = encoded_right …
Run Code Online (Sandbox Code Playgroud)

python keras

5
推荐指数
1
解决办法
1240
查看次数

标签 统计

keras ×1

python ×1