Exemplo n.º 1
0
def mnasnet_d1_320(depth_multiplier=None):
    """Creates a jointly searched mnasnet backbone for 320x320 input size.

  Args:
    depth_multiplier: multiplier to number of filters per layer.

  Returns:
    blocks_args: a list of BlocksArgs for internal MnasNet blocks.
    global_params: GlobalParams, global parameters for the model.
  """
    blocks_args = [
        'r3_k5_s11_e6_i32_o24', 'r4_k7_s22_e9_i24_o36', 'r5_k5_s22_e9_i36_o48',
        'r5_k7_s22_e6_i48_o96', 'r5_k3_s11_e9_i96_o144',
        'r5_k5_s22_e6_i144_o160', 'r1_k7_s11_e9_i160_o320'
    ]

    global_params = mnasnet_model.GlobalParams(
        batch_norm_momentum=0.99,
        batch_norm_epsilon=1e-3,
        dropout_rate=0.2,
        data_format='channels_last',
        num_classes=1000,
        depth_multiplier=depth_multiplier,
        depth_divisor=8,
        min_depth=None,
        stem_size=32,
        use_keras=False)
    decoder = MnasNetDecoder()
    return decoder.decode(blocks_args), global_params
Exemplo n.º 2
0
def mnasnet_a1(depth_multiplier=None):
    """Creates a mnasnet-a1 model.

  Args:
    depth_multiplier: multiplier to number of filters per layer.

  Returns:
    blocks_args: a list of BlocksArgs for internal MnasNet blocks.
    global_params: GlobalParams, global parameters for the model.
  """
    blocks_args = [
        'r1_k3_s11_e1_i32_o16_noskip', 'r2_k3_s22_e6_i16_o24',
        'r3_k5_s22_e3_i24_o40_se0.25', 'r4_k3_s22_e6_i40_o80',
        'r2_k3_s11_e6_i80_o112_se0.25', 'r3_k5_s22_e6_i112_o160_se0.25',
        'r1_k3_s11_e6_i160_o320'
    ]
    global_params = mnasnet_model.GlobalParams(
        batch_norm_momentum=0.99,
        batch_norm_epsilon=1e-3,
        dropout_rate=0.2,
        data_format='channels_last',
        num_classes=1000,
        depth_multiplier=depth_multiplier,
        depth_divisor=8,
        min_depth=None)
    decoder = MnasNetDecoder()
    return decoder.decode(blocks_args), global_params
Exemplo n.º 3
0
def legrnet70(depth_multiplier=None):
    """Creates a legrnet model.

  Args:
    depth_multiplier: multiplier to number of filters per layer.

  Returns:
    blocks_args: a list of BlocksArgs for internal MnasNet blocks.
    global_params: GlobalParams, global parameters for the model.
  """
    blocks_args = [
        'r1_k3_s11_m17_i17_o16_noskip', 'r1_k3_s22_m20_i16_o24_noskip',
        'r1_k3_s11_m29_i24_o24', 'r1_k3_s22_m144_i24_o32_noskip',
        'r1_k3_s11_m191_i32_o32', 'r1_k3_s11_m39_i32_o32',
        'r1_k3_s22_m192_i32_o64_noskip', 'r1_k3_s11_m268_i64_o64',
        'r1_k3_s11_m80_i64_o64', 'r1_k3_s11_m240_i64_o64',
        'r1_k3_s11_m384_i64_o96_noskip', 'r1_k3_s11_m572_i96_o96',
        'r1_k3_s11_m574_i96_o96', 'r1_k3_s22_m574_i96_o160_noskip',
        'r1_k3_s11_m192_i160_o160', 'r1_k3_s11_m951_i160_o160',
        'r1_k3_s11_m959_i160_o320_noskip'
    ]
    decoder = LeGRNetDecoder()
    global_params = mnasnet_model.GlobalParams(
        batch_norm_momentum=0.99,
        batch_norm_epsilon=1e-3,
        dropout_rate=0.2,
        data_format='channels_last',
        num_classes=1000,
        depth_multiplier=depth_multiplier,
        depth_divisor=1,
        stem_filters=17,
        last_filters=1280,
        mask=False,
        min_depth=None)
    return decoder.decode(blocks_args), global_params
Exemplo n.º 4
0
def mnasnet_small(depth_multiplier=None,
                  output_stride=32,
                  squeeze=False,
                  more=False):
    """Creates a mnasnet-a1 model.

  Args:
    depth_multiplier: multiplier to number of filters per layer.

  Returns:
    blocks_args: a list of BlocksArgs for internal MnasNet blocks.
    global_params: GlobalParams, global parameters for the model.
  """
    blocks_args = [
        'r1_k3_s11_e1_i16_o8',
        'r1_k3_s22_e3_i8_o16',
        'r2_k3_s22_e6_i16_o16',
        'r4_k5_s22_e6_i16_o32_se0.25',
    ]

    if squeeze:
        if more:
            blocks_args.append('r3_k3_s11_e6_i32_o16_se0.25')
            if output_stride == 16:
                blocks_args.append('r3_k5_s11_e6_i16_o44_se0.25')
            else:
                blocks_args.append('r3_k5_s22_e6_i16_o44_se0.25')
            blocks_args.append('r1_k3_s11_e6_i44_o72')
        else:
            blocks_args.append('r3_k3_s11_e6_i32_o32_se0.25')
            if output_stride == 16:
                blocks_args.append('r3_k5_s11_e6_i32_o44_se0.25')
            else:
                blocks_args.append('r3_k5_s22_e6_i32_o44_se0.25')
            blocks_args.append('r1_k3_s11_e6_i44_o72')
    else:
        blocks_args.append('r3_k3_s11_e6_i32_o32_se0.25')
        if output_stride == 16:
            blocks_args.append('r3_k5_s11_e6_i32_o88_se0.25')
        else:
            blocks_args.append('r3_k5_s22_e6_i32_o88_se0.25')
        blocks_args.append('r1_k3_s11_e6_i88_o144')

    global_params = mnasnet_model.GlobalParams(
        batch_norm_momentum=0.99,
        batch_norm_epsilon=1e-3,
        dropout_rate=0,
        data_format='channels_last',
        num_classes=1000,
        depth_multiplier=depth_multiplier,
        depth_divisor=8,
        min_depth=None,
        stem_size=8,
        use_keras=True)
    decoder = MnasNetDecoder()
    return decoder.decode(blocks_args), global_params