from tensorflow.python.ops import variable_scope

        options = self.options

        with variable_scope.variable_scope("attention_decoder"):
            v = variable_scope.get_variable("v", [options.attention_vec_size])
            v = tf.expand_dims(tf.expand_dims(v, axis=0), axis=0)
            w_c = None
            if options.use_coverage:
                with variable_scope.variable_scope("coverage"):
                    w_c = variable_scope.get_variable("w_c", [options.attention_vec_size])
                    w_c = tf.expand_dims(tf.expand_dims(w_c, axis=0), axis=0)

            word_t_representation = self.embedding_lookup(word_t)

            (state_t, context_t, coverage_t, attn_dist_t, p_gen_t, output_t) = self.one_step_decoder(
                                state_t_1, context_t_1, coverage_t_1, word_t_representation, encoder_states, encoder_features,
                                passage_word_idx, passage_mask, v, w_c, word_vocab)
