如何在LSTM中为每个输入生成1个以上的输出?

时间:2018-08-07 16:35:47

标签: machine-learning keras nlp lstm recurrent-neural-network

假设这是我的模型:

_________________________________________________________________ 
Layer (type)                 Output Shape              Param #    ================================================================= 
embedding_16 (Embedding)     (None, 10, 500)          71500      _________________________________________________________________ 
lstm_31 (LSTM)               (None, 10, 500)          2002000    _________________________________________________________________ 
dropout_15 (Dropout)         (None, 10, 500)          0          _________________________________________________________________ 
time_distributed_16          (None, 10, 500)          250500    _________________________________________________________________ 
softmax (Activation)         (None, 10, 500)           0     =================================================================

但是我想进入最后一层:

softmax (Activation)         (None, 100, 1000)           0

我已经尝试了几个小时。我不知道这是否可行。我不认为您可以更改LSTM的输出大小(看一下它的模型),但是我是否可以添加一个图层,以便每个输入生成10个输出?

简单地说,假设我想让我的模型为我输入的每个单词生成10个单词。希望我能解释一下。

1 个答案:

答案 0 :(得分:1)

这里有多种查看“多个输出”的方式(通过“这里”,我猜测您正在使用keras库-从打印输出中可以看出)。

在一个简单的情况下,例如Dense(10)层将解决此问题。如SO post所述,使用TimeDistributed层包装器时的“秘密调味料”。

另一种方法要求使用keras的功能性API。 docs中说明了如何获取多个。