Как объединить последние скрытые состояния с обоих направлений, двунаправленного LSTM - PullRequest
0 голосов
/ 25 марта 2019

Я использую сеть кодировщика-декодера для суммирования текста

Кодер - это двунаправленный GRU

Декодер - это простой GRU

Это то, что яя пытался

## ENCODER
encoder_inputs = Input(shape = (MAX_LEN,), dtype = 'int32')

encoder_embeds = embedding_layer(encoder_inputs)

x, forward_h, backward_h = Bidirectional(GRU(MAX_LEN, return_sequences = True, return_state = True))(encoder_embeds) #return state is by default True

encoder_state = Concatenate()([forward_h, backward_h])

## DECODER
decoder_inputs = Input(shape = (MAX_LEN,), dtype = 'float32')

decoder_embeds = embedding_layer(decoder_inputs)

decoder_outputs, state_s = GRU(MAX_LEN, return_sequences = True, return_state = True)(decoder_embeds, initial_state = encoder_state)

Это ошибка, которую я получаю

An `initial_state` was passed that is not compatible with `cell.state_size`. Received `state_spec`=[InputSpec(shape=(None, 198), ndim=2)]; however `cell.state_size` is 99

Я знаю, что ошибка говорит о том, что она получила 2-е измерение как (99 + 99 =) 198, когда ожидалось 99

и то,

Произошла ошибка из-за операции Concatenate ()

Что является альтернативой Concatenate () когда я хочу рассмотреть последние скрытые состояния в обоих направлениях

...