(bottom)
return conv_1x1, conv_1x1_bn, conv_1x1_scale, conv_1x1_relu, conv_3x3_reduce, conv_3x3_reduce_bn, \
           conv_3x3_reduce_scale, conv_3x3_reduce_relu, 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, conv_up, conv_up_bn, conv_up_scale, residual_eltwise, residual_eltwise_relu
input:320x35x35
    output:320x35x35
    :param bottom: bottom layer
    :return: layers
input:320x35x35
    output:320x35x35
    :param bottom: bottom layer
    :return: layers
input : 320x35x35 output : 320x35x35 : param bottom : bottom layer : return : layers
def inception_resnet_v2_a(bottom):
    """
    input:320x35x35
    output:320x35x35
    :param bottom: bottom layer
    :return: layers
    """
    conv_1x1, conv_1x1_bn, conv_1x1_scale, conv_1x1_relu = \
        factorization_conv_bn_scale_relu(bottom, num_output=32, kernel_size=1)  # 32x35x35

    conv_3x3_reduce, conv_3x3_reduce_bn, conv_3x3_reduce_scale, conv_3x3_reduce_relu = \
        factorization_conv_bn_scale_relu(bottom, num_output=32, kernel_size=1)  # 32x35x35
    conv_3x3, conv_3x3_bn, conv_3x3_scale, conv_3x3_relu = \
        factorization_conv_bn_scale_relu(conv_3x3_reduce, num_output=32, kernel_size=3, pad=1)  # 32x35x35

    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=32, kernel_size=1)  # 32x35x35
    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=48, kernel_size=3, pad=1)  # 48x35x35
    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=64, kernel_size=3, pad=1)  # 64x35x35

    concat = L.Concat(conv_1x1, conv_3x3, conv_3x3_3)  # 128(32+32+64)x35x35
    conv_up, conv_up_bn, conv_up_scale = \
        factorization_conv_bn_scale(concat, num_output=320, kernel_size=1)  # 320x35x35

    residual_eltwise, residual_eltwise_relu = eltwise_relu(bottom, conv_up)  # 320x35x35

    return conv_1x1, conv_1x1_bn, conv_1x1_scale, conv_1x1_relu, conv_3x3_reduce, conv_3x3_reduce_bn, \
           conv_3x3_reduce_scale, conv_3x3_reduce_relu, 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, conv_up, conv_up_bn, conv_up_scale, residual_eltwise, residual_eltwise_relu
def inception_resnet_v2_a ( bottom ) : conv_1x1 , conv_1x1_bn , conv_1x1_scale , conv_1x1_relu = factorization_conv_bn_scale_relu ( bottom , num_output = 32 , kernel_size = 1 ) # 32x35x35 conv_3x3_reduce , conv_3x3_reduce_bn , conv_3x3_reduce_scale , conv_3x3_reduce_relu = factorization_conv_bn_scale_relu ( bottom , num_output = 32 , kernel_size = 1 ) # 32x35x35 conv_3x3 , conv_3x3_bn , conv_3x3_scale , conv_3x3_relu = factorization_conv_bn_scale_relu ( conv_3x3_reduce , num_output = 32 , kernel_size = 3 , pad = 1 ) # 32x35x35 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 = 32 , kernel_size = 1 ) # 32x35x35 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 = 48 , kernel_size = 3 , pad = 1 ) # 48x35x35 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 = 64 , kernel_size = 3 , pad = 1 ) # 64x35x35 concat = L . Concat ( conv_1x1 , conv_3x3 , conv_3x3_3 ) # 128(32+32+64)x35x35 conv_up , conv_up_bn , conv_up_scale = factorization_conv_bn_scale ( concat , num_output = 320 , kernel_size = 1 ) # 320x35x35 residual_eltwise , residual_eltwise_relu = eltwise_relu ( bottom , conv_up ) # 320x35x35 return conv_1x1 , conv_1x1_bn , conv_1x1_scale , conv_1x1_relu , conv_3x3_reduce , conv_3x3_reduce_bn , conv_3x3_reduce_scale , conv_3x3_reduce_relu , 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 , conv_up , conv_up_bn , conv_up_scale , residual_eltwise , residual_eltwise_relu