import tensorflow as tf

        Builds the computation graph with Tensorflow
        """
        start_t = time.time()
        self._setup_placeholders()
        self._embed()
        self._encode()
        self._fuse()
        self._decode()
        self._compute_loss()
        self._create_train_op()
        self.logger.info('Time to build graph: {} s'.format(time.time() - start_t))
        param_num = total_params(tf.trainable_variables())
        self.logger.info('There are {} parameters in the model'.format(param_num))

    """
    :description: Placeholders
    """

    def _setup_placeholders(self):

        if self.demo:
            self.c = tf.placeholder(tf.int32, [None, self.config.max_p_len], "context")
