import tensorflow as tf

                                    "question")
            self.ch = tf.placeholder(tf.int32, [self.config.batch_size * self.max_p_num, self.config.max_p_len,
                                                self.config.max_ch_len], "context_char")
            self.qh = tf.placeholder(tf.int32, [self.config.batch_size * self.max_p_num, self.config.max_q_len,
                                                self.config.max_ch_len], "question_char")
            self.start_label = tf.placeholder(tf.int32, [self.config.batch_size], "answer_label1")
            self.end_label = tf.placeholder(tf.int32, [self.config.batch_size], "answer_label2")

        self.position_emb = position_embedding(self.c, 2 * self.config.hidden_size)
        self.c_mask = tf.cast(self.c, tf.bool)  # index 0 is padding symbol  N x self.max_p_num, max_p_len
        self.q_mask = tf.cast(self.q, tf.bool)
        self.c_len = tf.reduce_sum(tf.cast(self.c_mask, tf.int32), axis=1)
        self.q_len = tf.reduce_sum(tf.cast(self.q_mask, tf.int32), axis=1)
        self.dropout = tf.placeholder(tf.float32, name="dropout")

        self.global_step = tf.Variable(0, name="global_step", trainable=False)

    """
