import tensorflow as tf

        reduction_arch = [cell_archs[(4 * i):(4 * i + 4)] for i in range(b, b + b)]
        return (normal_arch, reduction_arch)

    def _add_aux_head(self, X, in_w, in_h, in_ch, K, is_train):
        pool_ksize = 5
        pool_stride = 3
        conv_ch = 128
        global_conv_ch = 768

        w = in_w
        h = in_h
        ch = in_ch

        # Pool
        with tf.variable_scope('pool'):
            X = tf.nn.relu(X)
            X = tf.nn.avg_pool(X, ksize=(1, pool_ksize, pool_ksize, 1), strides=(1, pool_stride, pool_stride, 1),
                            padding='VALID')
        w //= pool_stride
        h //= pool_stride

        # Conv 1x1
        with tf.variable_scope('conv_0'):
            X = self._do_conv(X, w, h, ch, conv_ch, filter_size=1, no_reg=True, is_train=is_train)
        ch = conv_ch

        # Global conv
        with tf.variable_scope('conv_1'):
            X = self._do_conv(X, w, h, ch, global_conv_ch, filter_size=w, no_reg=True, is_train=is_train)
        ch = global_conv_ch
