Если я правильно понимаю ваш вопрос, предполагая, что входные данные имеют форму (n_samples, n_timesteps, 2)
(т.е. два слова на шаг), вы можете достичь того, что ищете, используя TimeDistributed
обертку:
from keras import layers
from keras import models
n_vocab = 1000
n_timesteps = 500
embed_dim = 128
words_per_step = 2
model = models.Sequential()
model.add(layers.TimeDistributed(layers.Embedding(n_vocab, embed_dim), input_shape=(n_timesteps, words_per_step)))
model.add(layers.TimeDistributed(layers.Flatten()))
# the rest of the model
model.summary()
Сводка модели:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
time_distributed_12 (TimeDis (None, 500, 2, 128) 128000
_________________________________________________________________
time_distributed_13 (TimeDis (None, 500, 256) 0
=================================================================
Total params: 128,000
Trainable params: 128,000
Non-trainable params: 0
_________________________________________________________________