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
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
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
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
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
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
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
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
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
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
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
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