Предположим, это моя модель:
_________________________________________________________________
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
, как объясняется в этом SO сообщение.
Другой подход требует использования функционального API keras. Как получить множественный выход, объясняется в документы.