Keras多输入一共享嵌入层

Keras多输入一共享嵌入层,keras,embedding,Keras,Embedding,是否可以简单地共享一个嵌入层和一个具有多个功能的输入? 是否可以避免逐个要素创建多个输入层 我希望避免创建34个输入层(逐个功能) 目标是通过抛出一个嵌入层34个特征序列,得到34个嵌入向量序列。将它们连接起来以获得一个超级特征向量序列。然后喂一个LSTM 输入形状(无,100,34)->嵌入层大小(无,100,34*64)->LSTM->softmax 希望您能清楚地了解解决方案: # Shared embedding embedding_layer = Embedding(input_dim

是否可以简单地共享一个嵌入层和一个具有多个功能的输入? 是否可以避免逐个要素创建多个输入层

我希望避免创建34个输入层(逐个功能)

目标是通过抛出一个嵌入层34个特征序列,得到34个嵌入向量序列。将它们连接起来以获得一个超级特征向量序列。然后喂一个LSTM

输入形状(无,100,34)->嵌入层大小(无,100,34*64)->LSTM->softmax

希望您能清楚地了解解决方案:

# Shared embedding
embedding_layer = Embedding(input_dim = vocab_size+1, output_dim = emb_dim, input_length = nb_timesteps, mask_zero = True)

# For every features we have it's own input
feature_inputs = [Input(shape=(nb_timesteps, ), name='feature_' + str(i + 1)) for i in range(nb_features)]

# Repeat this for every feature
feature_embeddings = [embedding_layer(f) for f in feature_inputs]

# Concatenate the embedding outputs
concatenated_embeddings = concatenate(feature_embeddings, axis=-1)

lstm_1 = LSTM(output_dim)(concatenated_embeddings)

output_layer = Dense(nb_classes, activation='softmax')(lstm_1)

model = Model(inputs=feature_inputs, outputs=output_layer, name="Multi_feature_Embedding_LSTM")