import tensorflow as tf


        h1 -> conv -> h2 -> conv -> h3 -> fb -> h2 h2 -> fb -> h1 h1 h1
        """

        # LAYER 1
        _, l1_h2 = self.hgru_ops(
            i0=i0,
            x=x,
            h2=l1_h2,
            layer='h1',
            layer_idx=0)

        # Intermediate FF
        if self.batch_norm:
            with tf.variable_scope(
                    'l1_h2_bn',
                    reuse=self.scope_reuse) as scope:
                l1_h2 = tf.contrib.layers.batch_norm(
                    inputs=l1_h2,
                    scale=True,
                    center=True,
                    fused=True,
                    renorm=False,
                    param_initializers=self.param_initializer,
                    updates_collections=None,
                    scope=scope,
                    reuse=self.reuse,
                    is_training=self.train)
