import tensorflow as tf

        # the true input symbols for the decoder with feed_previous=False.
        dec_fp_true = sess.run(dec_op_fp_true)
        output_symbols_fp_true = np.argmax(dec_fp_true, axis=2)
        dec_inp_fp_false = np.vstack((dec_inp_fp_true[0].eval(),
                                      output_symbols_fp_true[:-1]))
        sess.run(update_fp_true)
        sess.run(update_fp_false,
                 {holder: inp for holder, inp in zip(dec_inp_holder_fp_false,
                                                     dec_inp_fp_false)})

        for v_true, v_false in matched_variables:
          self.assertAllClose(v_true.eval(), v_false.eval())

    def EmbeddingRNNSeq2SeqF(enc_inp, dec_inp, feed_previous):
      cell = tf.nn.rnn_cell.BasicLSTMCell(2, state_is_tuple=True)
      return tf.nn.seq2seq.embedding_rnn_seq2seq(
          enc_inp, dec_inp, cell, num_encoder_symbols,
          num_decoder_symbols, embedding_size=2, feed_previous=feed_previous)

    def EmbeddingRNNSeq2SeqNoTupleF(enc_inp, dec_inp, feed_previous):
      cell = tf.nn.rnn_cell.BasicLSTMCell(2, state_is_tuple=False)
      return tf.nn.seq2seq.embedding_rnn_seq2seq(
          enc_inp, dec_inp, cell, num_encoder_symbols,
          num_decoder_symbols, embedding_size=2, feed_previous=feed_previous)

    def EmbeddingTiedRNNSeq2Seq(enc_inp, dec_inp, feed_previous):
      cell = tf.nn.rnn_cell.BasicLSTMCell(2, state_is_tuple=True)
      return tf.nn.seq2seq.embedding_tied_rnn_seq2seq(
          enc_inp, dec_inp, cell, num_decoder_symbols, embedding_size=2,
          feed_previous=feed_previous)
