import tensorflow as tf

        with tf.device('/cpu:0'), tf.name_scope("embedding_tags"):
            W_tags = tf.get_variable("embed_W_tags", [tags_vocab_size, embedding_size], initializer=initializer)
            embedded_tags = tf.nn.embedding_lookup(W_tags, self.input_tags)
            embedded_tags_expanded = tf.expand_dims(embedded_tags, -1)

        with tf.device('/cpu:0'), tf.name_scope("embedding_deps"):
            W_deps = tf.get_variable("embed_W_deps", [deps_vocab_size, embedding_size], initializer=initializer)
            embedded_deps = tf.nn.embedding_lookup(W_deps, self.input_deps)
            embedded_deps_expanded = tf.expand_dims(embedded_deps, -1)

        with tf.device('/cpu:0'), tf.name_scope("embedding_head"):
            W_head = tf.get_variable("embed_W_head", [num_quantized_chars, embedding_size], initializer=initializer)
            embedded_head = tf.nn.embedding_lookup(W_head, self.input_head)
            embedded_head_expanded = tf.expand_dims(embedded_head, -1)

        cnn_inputs = tf.concat(
            [embedded_text_expand, embedded_tags_expanded, embedded_deps_expanded, embedded_head_expanded], -1)

        print("-" * 20)
        print("Embedded Lookup:", cnn_inputs.get_shape())
        print("-" * 20)

        self.layers = []

        # Temp(First) Conv Layer
        with tf.variable_scope("temp_conv") as scope: 
