В чем разница между состоянием возврата и последовательностью возврата в слое keras GRU?

Пользователи, у которых один из 3 страны

SELECT DISTINCT user_id
FROM table
WHERE ancestry IN('England','France','Germany')

Пользователи, у которых все 3 страны

SELECT DISTINCT A.userID
FROM table A
   INNER JOIN table B on A.user_id = B.user_id
   INNER JOIN table C on A.user_id = C.user_id
WHERE A.ancestry = 'England'
   AND B.ancestry = 'Germany'
   AND C.ancestry = 'France'
2
задан Kebab Programmer 26 February 2019 в 15:23
поделиться

1 ответ

«Состояние» слоя GRU обычно будет таким же, как «выход». Однако, если вы передадите return_state=True и return_sequence=True, то выход слоя будет выводиться после каждого элемента последовательности, а состояние будет только состоянием после обработки последнего элемента последовательности.

Вот пример кодера / декодера для сети seq-2-seq, использующей уровни GRU

#Create layers
encoder_input_layer = Input(shape=(None,))
encoder_embedding_layer = Embedding(len(vocab), THOUGHT_VECTOR_SIZE)
encoder_gru_layer = GRU(THOUGHT_VECTOR_SIZE, return_state=True)

decoder_input_layer = Input(shape=(None,))
decoder_embedding_layer = Embedding(len(vocab), THOUGHT_VECTOR_SIZE)
decoder_gru_layer = GRU(THOUGHT_VECTOR_SIZE, return_sequences=True)
decoder_dense_layer = Dense(len(vocab), activation='softmax')


#connect network
encoder = encoder_embedding_layer(encoder_input_layer)
encoder, encoder_state = encoder_gru_layer(encoder)

decoder = decoder_embedding_layer(decoder_input_layer)
decoder = decoder_gru_layer(decoder, initial_state=encoder_state)
decoder = decoder_dense_layer(decoder)

model = Model([encoder_input_layer, decoder_input_layer], decoder)

Но, с вашей точки зрения, использование return_state здесь на самом деле не нужно в качестве вывода состояние от encoder_gru_layer будет таким же.

0
ответ дан rob 26 February 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: