(bottom)
return pool, conv_3x3, conv_3x3_bn, conv_3x3_scale, conv_3x3_relu, conv_3x3_2_reduce, conv_3x3_2_reduce_bn, \
           conv_3x3_2_reduce_scale, conv_3x3_2_reduce_relu, conv_3x3_2, conv_3x3_2_bn, conv_3x3_2_scale, \
           conv_3x3_2_relu, conv_3x3_3, conv_3x3_3_bn, conv_3x3_3_scale, conv_3x3_3_relu, concat
input:288x35x35
    output:768x17x17
    :param bottom: bottom layer
    :return: layers
input:288x35x35
    output:768x17x17
    :param bottom: bottom layer
    :return: layers
input : 288x35x35 output : 768x17x17 : param bottom : bottom layer : return : layers
def reduction_v3_a(bottom):
    """
    input:288x35x35
    output:768x17x17
    :param bottom: bottom layer
    :return: layers
    """
    pool = L.Pooling(bottom, kernel_size=3, stride=2, pool=P.Pooling.MAX)  # 384x17x17

    conv_3x3, conv_3x3_bn, conv_3x3_scale, conv_3x3_relu = \
        factorization_conv_bn_scale_relu(bottom, kernel_size=3, num_output=384, stride=2)  # 384x17x17

    conv_3x3_2_reduce, conv_3x3_2_reduce_bn, conv_3x3_2_reduce_scale, conv_3x3_2_reduce_relu = \
        factorization_conv_bn_scale_relu(bottom, num_output=64, kernel_size=1)  # 64x35x35
    conv_3x3_2, conv_3x3_2_bn, conv_3x3_2_scale, conv_3x3_2_relu = \
        factorization_conv_bn_scale_relu(conv_3x3_2_reduce, num_output=96, kernel_size=3, pad=1)  # 96x35x35
    conv_3x3_3, conv_3x3_3_bn, conv_3x3_3_scale, conv_3x3_3_relu = \
        factorization_conv_bn_scale_relu(conv_3x3_2, num_output=96, kernel_size=3, stride=2)  # 96x17x17

    concat = L.Concat(pool, conv_3x3, conv_3x3_3)  # 768(288+384+96)x17x17

    return pool, conv_3x3, conv_3x3_bn, conv_3x3_scale, conv_3x3_relu, conv_3x3_2_reduce, conv_3x3_2_reduce_bn, \
           conv_3x3_2_reduce_scale, conv_3x3_2_reduce_relu, conv_3x3_2, conv_3x3_2_bn, conv_3x3_2_scale, \
           conv_3x3_2_relu, conv_3x3_3, conv_3x3_3_bn, conv_3x3_3_scale, conv_3x3_3_relu, concat
def reduction_v3_a ( bottom ) : pool = L . Pooling ( bottom , kernel_size = 3 , stride = 2 , pool = P . Pooling . MAX ) # 384x17x17 conv_3x3 , conv_3x3_bn , conv_3x3_scale , conv_3x3_relu = factorization_conv_bn_scale_relu ( bottom , kernel_size = 3 , num_output = 384 , stride = 2 ) # 384x17x17 conv_3x3_2_reduce , conv_3x3_2_reduce_bn , conv_3x3_2_reduce_scale , conv_3x3_2_reduce_relu = factorization_conv_bn_scale_relu ( bottom , num_output = 64 , kernel_size = 1 ) # 64x35x35 conv_3x3_2 , conv_3x3_2_bn , conv_3x3_2_scale , conv_3x3_2_relu = factorization_conv_bn_scale_relu ( conv_3x3_2_reduce , num_output = 96 , kernel_size = 3 , pad = 1 ) # 96x35x35 conv_3x3_3 , conv_3x3_3_bn , conv_3x3_3_scale , conv_3x3_3_relu = factorization_conv_bn_scale_relu ( conv_3x3_2 , num_output = 96 , kernel_size = 3 , stride = 2 ) # 96x17x17 concat = L . Concat ( pool , conv_3x3 , conv_3x3_3 ) # 768(288+384+96)x17x17 return pool , conv_3x3 , conv_3x3_bn , conv_3x3_scale , conv_3x3_relu , conv_3x3_2_reduce , conv_3x3_2_reduce_bn , conv_3x3_2_reduce_scale , conv_3x3_2_reduce_relu , conv_3x3_2 , conv_3x3_2_bn , conv_3x3_2_scale , conv_3x3_2_relu , conv_3x3_3 , conv_3x3_3_bn , conv_3x3_3_scale , conv_3x3_3_relu , concat