Keras-连接不同尺寸的嵌入

我正在尝试在Keras中创建一个自动编码器。到目前为止,这是我用于 encoder 的代码,该代码基于code2vec架构:

path_source_token_input = Input((MAX_CONTEXTS,2),dtype=tf.int32)
path_input = Input((MAX_CONTEXTS,27),dtype=tf.int32)
path_target_token_input = Input((MAX_CONTEXTS,dtype=tf.int32)

paths_embedded = Embedding(
        MAX_VOCAB_SIZE,DEFAULT_EMBEDDINGS_SIZE,name='path_embedding')(path_input)

token_embedding_shared_layer = Embedding(
        MAX_VOCAB_SIZE,name='token_embedding')
path_source_token_embedded = token_embedding_shared_layer(path_source_token_input)
path_target_token_embedded = token_embedding_shared_layer(path_target_token_input)

context_embedded = concatenate()([path_source_token_embedded,paths_embedded,path_target_token_embedded])

learned = LSTM(100,activation='relu',input_shape=(500,1))(context_embedded)

现在,我的输入也是基于code2vec的源代码表示,但是在某种程度上有所不同。源代码表示为 context_path ,它是通过 path 连接到 target_node source_node 。现在用简单的术语来说, source target_node 都只是两个字的字符串,例如“ 1变量”,“ 37函数”。然后使用keras one_hot编码函数对其进行编码,因此它是长度为2的int数组。现在, source target_node 通过 path 完全相同,但长度为27。现在每个源代码文件都由500个三元组-> context_path s表示。我想为每个三元组创建一个嵌入,然后使用连接层将它们合并为一个向量。我不确定是否应该尝试以其他方式处理我的数据,或者是否有一些聪明的方法来解决此问题。给我的问题是我所描述的,我应该寻找替代方案还是存在一般解决方案,其中连接层的输入尺寸不匹配?

ananxiao 回答:Keras-连接不同尺寸的嵌入

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2649176.html

大家都在问