假设这是我的模型:
_________________________________________________________________
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 个单词。我希望我能够解释一下。
最佳答案
这里有不同的方式查看“多重输出”(通过“这里”,我猜测您正在使用 keras 库 - 从打印输出来看似乎是这样)。
在一个简单的情况下,例如Dense(10)
层可以解决这个问题。使用 TimeDistributed
层包装器的“ secret 武器”,如本 SO post 中所述。 。
另一种方法需要使用 keras 的功能 API。 docs 中解释了如何获取多个输出。 。
关于machine-learning - 如何在 LSTM 中为每个输入生成 1 个以上的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51731587/