Tensorflow Version 1.0Kodierer-Ausgangszustand zu mehrschichtigem Decoder in Seq2Seq Modell TF 1.0
Meine Frage ist, was Dimension des encoder_state
Arguments hat tf.contrib.seq2seq attention_decoder_fn_train
erwartet.
Kann der mehrschichtige Encoder-Status ausgegeben werden?
Kontext:
Ich möchte ein mehrschichtige bidirektionale Aufmerksamkeit basierend seq2seq erstellen in tensorflow 1.0.
Mein Geber:
cell = LSTM(n)
cell = MultiRnnCell([cell]*4)
((encoder_fw_outputs,encoder_bw_outputs),
(encoder_fw_state,encoder_bw_state)) = (tf.nn.bidirectional_dynamic_rnn(cell_fw=cell, cell_bw = cell....)
Nun wird der mutilayered bidirektionale Encoder liefert Encoder cell_states[c]
und hidden_states[h]
für jede Schicht und auch für Rückwärts- und Vorwärtspass. ich verketten den Vorwärtslauf und Rückwärtslauf Staaten es passieren encoder_state:
self.encoder_state = tf.concat((encoder_fw_state, encoder_bw_state), -1)
Und ich diese zu meinen Decoder übergeben:
decoder_fn_train = seq2seq.simple_decoder_fn_train(encoder_state=self.encoder_state)
(self.decoder_outputs_train,
self.decoder_state_train,
self.decoder_context_state_train) = seq2seq.dynamic_rnn_decoder(cell=decoder_cell,...)
Aber es gibt folgende Fehlermeldung:
ValueError: The two structures don't have the same number of elements. First structure: Tensor("BidirectionalEncoder/transpose:0", shape=(?, 2, 2, 20), dtype=float32), second structure: (LSTMStateTuple(c=20, h=20), LSTMStateTuple(c=20, h=20)).
Meine decoder_cell
ist auch mehrschichtig.
1: