我现在正在使用Embedding
图层来解决我的NLP问题。我的模型预测一个词作为答案。所以最终输出的形状是(None, vocab_size)
。
我的问题是如何在没有新Dense
图层的情况下从嵌入的矢量中恢复原始单词?例如,x
下面是(None, 4, 8) = (None, sequence_length, embedding_dim)
。然后,我想从实际i-th word
中提取最可能的x
。
...
inp = Input(shape=(max_length,), dtype='int32') # ex) ['who','are','you','?']
x = Embedding(output_dim=embd_dim,
input_dim=vocab_size,
input_length=max_length,
name='my_emb')(inp)
answer = restore_word_from_embedded_data(x) # what i want to do. ex) 'tom'
# No, i want to extract a word without new Dense layer
# answer = Dense(vocab_size)(answer) from current Embedding weights, 'my_emb'.
...
以下是输入和嵌入的简短摘要。
input_6 (InputLayer) (None, 4(seq_length))
_________________________________________________________________
embedding_9 (Embedding) (None, 4(seq_length), 8(embed_dim))