これは役立つかもしれません。 tensorflow.python.ops.seq2seq.pyには2つのモデルがありますが(バケツの有無は問わない)、embedding_attention_seq2seq
の定義を参照してください(参照モデルのseq2seq_model.pyで呼び出されているようです):
def embedding_attention_seq2seq(encoder_inputs, decoder_inputs, cell,
num_encoder_symbols, num_decoder_symbols,
num_heads=1, output_projection=None,
feed_previous=False, dtype=dtypes.float32,
scope=None, initial_state_attention=False):
with variable_scope.variable_scope(scope or "embedding_attention_seq2seq"):
# Encoder.
encoder_cell = rnn_cell.EmbeddingWrapper(cell, num_encoder_symbols)
encoder_outputs, encoder_state = rnn.rnn(
encoder_cell, encoder_inputs, dtype=dtype)
# First calculate a concatenation of encoder outputs to put attention on.
top_states = [array_ops.reshape(e, [-1, 1, cell.output_size])
for e in encoder_outputs]
attention_states = array_ops.concat(1, top_states)
....
エンコーダの出力の最上位レイヤーをtop_states
と選択してから、デコーダに渡すことができます。
したがって、2つのエンコーダで同様の機能を実装し、それらの状態を連結してデコーダに渡すことができます。
ご回答ありがとうございます。これはまさに私が現在やっていることです:-)しかし、私の質問は、まだ私に少し混乱している体重管理についてのものでした。私はちょうどテストして見なければならないと思う。良い一日を過ごしてください。 –