假设这是我的模型:
_________________________________________________________________ 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
层包装器的“秘诀”在这篇Stack Overflow帖子中有所解释。
另一种方法需要使用keras的函数式API。如何获得多个输出在文档中有详细说明。