Я пытаюсь объединить контекстный вектор формы (Batch_size=None, context_dim)
с выводом скрытого состояния LSTM (return_sequence=True)
формы (Batch_size=None, Time_steps=None, feature_dim)
Ожидаемый результат - (Batch_size, Time_step, feature_dim+context_dim)
Однако, поскольку Time_step
dim не исправлен, я не могу найти решение, используя слои keras
Я попытался решить эту проблему следующим образом с помощью TimeDistributed layer , которыйследует объединить скрытое состояние с тензором контекста.
python
inp_seq = Input(shape=(None, FEATURE_DIM,), name="inpt_reference")
inp_context = Input(shape=(FEATURE_DIM,), name="last_inpt_reference")
hidden_state_0 = LSTM(5, return_sequences=True, name="LSTM")(inp_seq)
context_0 = Dense(4, activation='sigmoid', name="dense")(inp_context)
expand_0 = TimeDistributed( Lambda(lambda x: concatenate([x, context_0])), name= "spacial_concat" )
context_0_hidden_state = expand_0(hidden_state_0)
model_representation = Model(inputs = [inp_seq, inp_context],
outputs= context_0_hidden_state)
print(model_representation.summary())
Я получаю ожидаемую выходную форму (None,None,9)
, однако, когда я печатаю сводку модели, я как-то не вижу слои относительно вектора контекста
У кого-нибудь есть идея, что происходит?и если это не правильный способ сделать это, любой указатель на правильный способ сделать это?
Спасибо!