如何将经过训练的嵌入层和输入层连接在一起

问题描述 投票:1回答:2
normal_input = Input(shape=(56,))

pretrained_embeddings = Embedding(num_words, 200, input_length=max_length, trainable=False,
                                                            weights=[ft_embedding_matrix])

concatenated = concatenate([normal_input, pretrained_embeddings])

dense = Dense(256, activation='relu')(concatenated)

我的想法是创建一个256维的输入并将其传递到一个密集层。

我收到以下错误。

ValueError:使用非符号张量的输入调用了concatenate_10层。收到的类型:。全部输入:[,]。该层的所有输入都应为张量。

请帮助我如何做。

python tensorflow keras concatenation word-embedding
2个回答
1
投票

您需要输入以选择要使用的嵌入内容

word_input = Input((1,))
normal_input = Input((56,))

embedding = pretrained_embeddings(word_input)
embedding = Reshape((200,))(embedding)

concatenated = Concatenate()([normal_input, embedding])

0
投票

这是因为连接层被这样调用:

concatenated = Concatenate()([normal_input, pretrained_embeddings])
© www.soinside.com 2019 - 2024. All rights reserved.