Missed TensorFlow Dev Summit? Check out the video playlist. Watch recordings


View source on GitHub

RNN sequence-to-sequence model with tied encoder and decoder parameters.


This model first runs an RNN to encode encoder_inputs into a state vector, and then runs decoder, initialized with the last encoder state, on decoder_inputs. Encoder and decoder use the same RNN cell and share parameters.


  • encoder_inputs: A list of 2D Tensors [batch_size x input_size].
  • decoder_inputs: A list of 2D Tensors [batch_size x input_size].
  • cell: tf.compat.v1.nn.rnn_cell.RNNCell defining the cell function and size.
  • loop_function: If not None, this function will be applied to i-th output in order to generate i+1-th input, and decoder_inputs will be ignored, except for the first element ("GO" symbol), see rnn_decoder for details.
  • dtype: The dtype of the initial state of the rnn cell (default: tf.float32).
  • scope: VariableScope for the created subgraph; default: "tied_rnn_seq2seq".


A tuple of the form (outputs, state), where: outputs: A list of the same length as decoder_inputs of 2D Tensors with shape [batch_size x output_size] containing the generated outputs. state: The state of each decoder cell in each time-step. This is a list with length len(decoder_inputs) -- one item for each time-step. It is a 2D Tensor of shape [batch_size x cell.state_size].