model_zoo.py 2.19 KB
Newer Older
Zhang's avatar
v0.4.2  
Zhang committed
1
2
# pylint: disable=wildcard-import, unused-wildcard-import

Hang Zhang's avatar
Hang Zhang committed
3
4
from .backbone import *
from .sseg import *
Hang Zhang's avatar
Hang Zhang committed
5
from .deepten import *
Zhang's avatar
v0.4.2  
Zhang committed
6

Hang Zhang's avatar
Hang Zhang committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
__all__ = ['model_list', 'get_model']

models = {
    # resnet
    'resnet50': resnet50,
    'resnet101': resnet101,
    'resnet152': resnet152,
    # resnest
    'resnest50': resnest50,
    'resnest101': resnest101,
    'resnest200': resnest200,
    'resnest269': resnest269,
    # resnet other variants
    'resnet50s': resnet50s,
    'resnet101s': resnet101s,
    'resnet152s': resnet152s,
    'resnet50d': resnet50d,
    'resnext50_32x4d': resnext50_32x4d,
    'resnext101_32x8d': resnext101_32x8d,
    # other segmentation backbones
    'xception65': xception65,
    'wideresnet38': wideresnet38,
    'wideresnet50': wideresnet50,
    # deepten paper
    'deepten_resnet50_minc': get_deepten_resnet50_minc,
32
    # segmentation resnet models
Hang Zhang's avatar
Hang Zhang committed
33
34
35
36
37
38
39
40
    'encnet_resnet101s_coco': get_encnet_resnet101_coco,
    'fcn_resnet50s_pcontext': get_fcn_resnet50_pcontext,
    'encnet_resnet50s_pcontext': get_encnet_resnet50_pcontext,
    'encnet_resnet101s_pcontext': get_encnet_resnet101_pcontext,
    'encnet_resnet50s_ade': get_encnet_resnet50_ade,
    'encnet_resnet101s_ade': get_encnet_resnet101_ade,
    'fcn_resnet50s_ade': get_fcn_resnet50_ade,
    'psp_resnet50s_ade': get_psp_resnet50_ade,
41
42
    # segmentation resnest models
    'fcn_resnest50_ade': get_fcn_resnest50_ade,
Hang Zhang's avatar
Hang Zhang committed
43
44
    'deeplab_resnest50_ade': get_deeplab_resnest50_ade,
    'deeplab_resnest101_ade': get_deeplab_resnest101_ade,
45
46
    'deeplab_resnest200_ade': get_deeplab_resnest200_ade,
    'deeplab_resnest269_ade': get_deeplab_resnest269_ade,
Hang Zhang's avatar
Hang Zhang committed
47
48
49
}

model_list = list(models.keys())
Zhang's avatar
v0.4.2  
Zhang committed
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

def get_model(name, **kwargs):
    """Returns a pre-defined model by name

    Parameters
    ----------
    name : str
        Name of the model.
    pretrained : bool
        Whether to load the pretrained weights for model.
    root : str, default '~/.encoding/models'
        Location for keeping the model parameters.

    Returns
    -------
    Module:
        The model.
    """
    name = name.lower()
    if name not in models:
Hang Zhang's avatar
Hang Zhang committed
70
        raise ValueError('%s\n\t%s' % (str(name), '\n\t'.join(sorted(models.keys()))))
Zhang's avatar
v0.4.2  
Zhang committed
71
72
    net = models[name](**kwargs)
    return net