def inception_v4(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    default_cfg = default_cfgs['inception_v4']
    model = InceptionV4(num_classes=num_classes, in_chans=in_chans, **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #2
0
def senet154(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    default_cfg = default_cfgs['senet154']
    model = SENet(SEBottleneck, [3, 8, 36, 3], groups=64, reduction=16,
                  num_classes=num_classes, in_chans=in_chans, **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #3
0
def resnet152(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    """Constructs a ResNet-152 model.
    """
    default_cfg = default_cfgs['resnet152']
    model = ResNet(Bottleneck, [3, 8, 36, 3], num_classes=num_classes, in_chans=in_chans, **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #4
0
def resnet34(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    """Constructs a ResNet-34 model.
    """
    default_cfg = default_cfgs['resnet34']
    model = ResNet(BasicBlock, [3, 4, 6, 3], num_classes=num_classes, in_chans=in_chans, **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #5
0
def seresnext101_32x4d(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    default_cfg = default_cfgs['seresnext101_32x4d']
    model = SENet(SEResNeXtBottleneck, [3, 4, 23, 3], groups=32, reduction=16,
                  inplanes=64, input_3x3=False,
                  downsample_kernel_size=1, downsample_padding=0,
                  num_classes=num_classes, in_chans=in_chans, **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #6
0
def seresnet18(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    default_cfg = default_cfgs['seresnet18']
    model = SENet(SEResNetBlock, [2, 2, 2, 2], groups=1, reduction=16,
                  inplanes=64, input_3x3=False,
                  downsample_kernel_size=1, downsample_padding=0,
                  num_classes=num_classes, in_chans=in_chans, **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #7
0
def tf_inception_v3(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    # my port of Tensorflow SLIM weights (http://download.tensorflow.org/models/inception_v3_2016_08_28.tar.gz)
    default_cfg = default_cfgs['tf_inception_v3']
    assert in_chans == 3
    _assert_default_kwargs(kwargs)
    model = Inception3(num_classes=num_classes, aux_logits=False, transform_input=False)
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    model.default_cfg = default_cfg
    return model
Exemple #8
0
def inception_v3(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    # original PyTorch weights, ported from Tensorflow but modified
    default_cfg = default_cfgs['inception_v3']
    assert in_chans == 3
    _assert_default_kwargs(kwargs)
    model = Inception3(num_classes=num_classes, aux_logits=True, transform_input=False)
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    model.default_cfg = default_cfg
    return model
Exemple #9
0
def gluon_inception_v3(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    # from gluon pretrained models, best performing in terms of accuracy/loss metrics
    # https://gluon-cv.mxnet.io/model_zoo/classification.html
    default_cfg = default_cfgs['gluon_inception_v3']
    assert in_chans == 3
    _assert_default_kwargs(kwargs)
    model = Inception3(num_classes=num_classes, aux_logits=False, transform_input=False)
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    model.default_cfg = default_cfg
    return model
Exemple #10
0
def fbnetc_100(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ FBNet-C """
    default_cfg = default_cfgs['fbnetc_100']
    model = _gen_fbnetc(1.0,
                        num_classes=num_classes,
                        in_chans=in_chans,
                        **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #11
0
def resnext152_32x4d(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    """Constructs a ResNeXt152-32x4d model.
    """
    default_cfg = default_cfgs['resnext152_32x4d']
    model = ResNet(
        Bottleneck, [3, 8, 36, 3], cardinality=32, base_width=4,
        num_classes=num_classes, in_chans=in_chans, **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def mnasnet_075(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ MNASNet B1, depth multiplier of 0.75. """
    default_cfg = default_cfgs['mnasnet_075']
    model = _gen_mnasnet_b1(0.75,
                            num_classes=num_classes,
                            in_chans=in_chans,
                            **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def spnasnet_100(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ Single-Path NAS Pixel1"""
    default_cfg = default_cfgs['spnasnet_100']
    model = _gen_spnasnet(1.0,
                          num_classes=num_classes,
                          in_chans=in_chans,
                          **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def chamnetv2_100(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ ChamNet """
    default_cfg = default_cfgs['chamnetv2_100']
    model = _gen_chamnet_v2(1.0,
                            num_classes=num_classes,
                            in_chans=in_chans,
                            **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
Exemple #15
0
def adv_inception_v3(num_classes=1000, in_chans=3, pretrained=False, **kwargs):
    # my port of Tensorflow adversarially trained Inception V3 from
    # http://download.tensorflow.org/models/adv_inception_v3_2017_08_18.tar.gz
    default_cfg = default_cfgs['adv_inception_v3']
    assert in_chans == 3
    _assert_default_kwargs(kwargs)
    model = Inception3(num_classes=num_classes, aux_logits=False, transform_input=False)
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    model.default_cfg = default_cfg
    return model
def mobilenetv3_100(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ MobileNet V3 """
    default_cfg = default_cfgs['mobilenetv3_100']
    model = _gen_mobilenet_v3(1.0,
                              num_classes=num_classes,
                              in_chans=in_chans,
                              **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def mnasnet_small(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ MNASNet Small,  depth multiplier of 1.0. """
    default_cfg = default_cfgs['mnasnet_small']
    model = _gen_mnasnet_small(1.0,
                               num_classes=num_classes,
                               in_chans=in_chans,
                               **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def semnasnet_140(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ MNASNet A1 (w/ SE), depth multiplier of 1.4. """
    default_cfg = default_cfgs['semnasnet_140']
    model = _gen_mnasnet_a1(1.4,
                            num_classes=num_classes,
                            in_chans=in_chans,
                            **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def pnasnet5large(num_classes=1000, in_chans=3, pretrained='imagenet'):
    r"""PNASNet-5 model architecture from the
    `"Progressive Neural Architecture Search"
    <https://arxiv.org/abs/1712.00559>`_ paper.
    """
    default_cfg = default_cfgs['pnasnet5large']
    model = PNASNet5Large(num_classes=1000, in_chans=in_chans)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)

    return model
def dpn107(num_classes=1000, in_chans=3, pretrained=False):
    default_cfg = default_cfgs['dpn107_extra']
    model = DPN(num_init_features=128,
                k_r=200,
                groups=50,
                k_sec=(4, 8, 20, 3),
                inc_sec=(20, 64, 64, 128),
                num_classes=num_classes,
                in_chans=in_chans)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def dpn131(num_classes=1000, in_chans=3, pretrained=False):
    default_cfg = default_cfgs['dpn131']
    model = DPN(num_init_features=128,
                k_r=160,
                groups=40,
                k_sec=(4, 8, 28, 3),
                inc_sec=(16, 32, 32, 128),
                num_classes=num_classes,
                in_chans=in_chans)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def dpn92(num_classes=1000, in_chans=3, pretrained=False):
    default_cfg = default_cfgs['dpn92_extra']
    model = DPN(num_init_features=64,
                k_r=96,
                groups=32,
                k_sec=(3, 4, 20, 3),
                inc_sec=(16, 32, 24, 128),
                num_classes=num_classes,
                in_chans=in_chans)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def fbnetc_100(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ FBNet-C """
    default_cfg = default_cfgs['fbnetc_100']
    if pretrained:
        # pretrained model trained with non-default BN epsilon
        kwargs['bn_eps'] = _BN_EPS_TF_DEFAULT
    model = _gen_fbnetc(1.0,
                        num_classes=num_classes,
                        in_chans=in_chans,
                        **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def tflite_semnasnet_100(num_classes, in_chans=3, pretrained=False, **kwargs):
    """ MNASNet A1, depth multiplier of 1.0. """
    default_cfg = default_cfgs['tflite_semnasnet_100']
    # these two args are for compat with tflite pretrained weights
    kwargs['folded_bn'] = True
    kwargs['padding_same'] = True
    model = _gen_mnasnet_a1(1.0,
                            num_classes=num_classes,
                            in_chans=in_chans,
                            **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def dpn68(num_classes=1000, in_chans=3, pretrained=False):
    default_cfg = default_cfgs['dpn68']
    model = DPN(small=True,
                num_init_features=10,
                k_r=128,
                groups=32,
                k_sec=(3, 4, 12, 3),
                inc_sec=(16, 32, 32, 64),
                num_classes=num_classes,
                in_chans=in_chans)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def gluon_resnet18_v1b(num_classes=1000,
                       in_chans=3,
                       pretrained=False,
                       **kwargs):
    """Constructs a ResNet-18 model.
    """
    default_cfg = default_cfgs['gluon_resnet18_v1b']
    model = GluonResNet(BasicBlockGl, [2, 2, 2, 2],
                        num_classes=num_classes,
                        in_chans=in_chans,
                        **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def gluon_resnet101_v1b(num_classes=1000,
                        in_chans=3,
                        pretrained=False,
                        **kwargs):
    """Constructs a ResNet-101 model.
    """
    default_cfg = default_cfgs['gluon_resnet101_v1b']
    model = GluonResNet(BottleneckGl, [3, 4, 23, 3],
                        num_classes=num_classes,
                        in_chans=in_chans,
                        **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def inception_resnet_v2(num_classes=1000,
                        in_chans=3,
                        pretrained=False,
                        **kwargs):
    r"""InceptionResnetV2 model architecture from the
    `"InceptionV4, Inception-ResNet..." <https://arxiv.org/abs/1602.07261>`_ paper.
    """
    default_cfg = default_cfgs['inception_resnet_v2']
    model = InceptionResnetV2(num_classes=num_classes,
                              in_chans=in_chans,
                              **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)

    return model
def gluon_resnet152_v1s(num_classes=1000,
                        in_chans=3,
                        pretrained=False,
                        **kwargs):
    """Constructs a ResNet-152 model.
    """
    default_cfg = default_cfgs['gluon_resnet152_v1s']
    model = GluonResNet(BottleneckGl, [3, 8, 36, 3],
                        num_classes=num_classes,
                        in_chans=in_chans,
                        stem_width=64,
                        deep_stem=True,
                        **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model
def gluon_resnext101_64x4d(num_classes=1000,
                           in_chans=3,
                           pretrained=False,
                           **kwargs):
    """Constructs a ResNeXt-101 model.
    """
    default_cfg = default_cfgs['gluon_resnext101_64x4d']
    model = GluonResNet(BottleneckGl, [3, 4, 23, 3],
                        cardinality=64,
                        base_width=4,
                        num_classes=num_classes,
                        in_chans=in_chans,
                        **kwargs)
    model.default_cfg = default_cfg
    if pretrained:
        load_pretrained(model, default_cfg, num_classes, in_chans)
    return model