我正在研究Keras的文本分类研究。我使用W2V来表示我的词汇量。
首先,我创建了一个输入层:
input_layer= Input(shape (windows_size, ), dtype='int32', name='word_input')
其次,加载预先训练好的嵌入:
embd = Embedding(embeddings.shape[0],
embeddings.shape[1],
input_length=input_len,
weights=[embeddings],
trainable=False,
name='word_embed')(input_layer)
第三,我申请Conv1D
conv_net =Conv1D(filters, kernel_size, activation='relu')(embd)
对于Conv1D,它完美无缺。但是,现在我想使用两种嵌入来表示输入文本,例如W2v和手套。然后,我的输入文本将具有 3维,即输入句子可以看作宽度为3,高度为1且深度为2的图像(两个嵌入)。
我尝试创建一个输入图层
input_layer= Input(shape (windows_size, ), dtype='int32', name='word_input')
我的问题是:如何为两种类型的嵌入创建嵌入?
embd = Embedding(embeddings.shape[0], # embeddings width
embeddings.shape[1], # embeddings length
input_length=input_len,
weights=[embB_W2V, embd_GloVe], # Here I want to pass two embedding array. One for Glove and one for W2v
trainable=False,
name='word_embed')(input_layer)
conv_net = Conv2D(filters = 64,kernel_size = 3,activation =' relu')(embed_layer_ft)
但它不起作用,因为权重= [embB_W2V,embd_GloVe]大小与嵌入匹配错误
答案 0 :(得分:0)
您可以使用2层嵌入并合并它们。