model_zoo.py 1.45 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 .resnet import *
from .cifarresnet import *
Zhang's avatar
v0.4.2  
Zhang committed
5
from .fcn import *
Hang Zhang's avatar
Hang Zhang committed
6
from .psp import *
Zhang's avatar
v0.4.2  
Zhang committed
7
from .encnet import *
Hang Zhang's avatar
Hang Zhang committed
8
from .deepten import *
Zhang's avatar
v0.4.2  
Zhang committed
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

__all__ = ['get_model']


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.
    """
    models = {
Hang Zhang's avatar
Hang Zhang committed
31
32
33
34
35
36
37
        'resnet18': resnet18,
        'resnet34': resnet34,
        'resnet50': resnet50,
        'resnet101': resnet101,
        'resnet152': resnet152,
        'cifar_resnet20': cifar_resnet20,
        'deepten_resnet50_minc': get_deepten_resnet50_minc,
Zhang's avatar
v0.4.2  
Zhang committed
38
39
        'fcn_resnet50_pcontext': get_fcn_resnet50_pcontext,
        'encnet_resnet50_pcontext': get_encnet_resnet50_pcontext,
Hang Zhang's avatar
Hang Zhang committed
40
        'encnet_resnet101_pcontext': get_encnet_resnet101_pcontext,
Hang Zhang's avatar
Hang Zhang committed
41
        'encnet_resnet50_ade': get_encnet_resnet50_ade,
Hang Zhang's avatar
Hang Zhang committed
42
        'encnet_resnet101_ade': get_encnet_resnet101_ade,
Zhang's avatar
v0.4.2  
Zhang committed
43
        'fcn_resnet50_ade': get_fcn_resnet50_ade,
Hang Zhang's avatar
Hang Zhang committed
44
        'psp_resnet50_ade': get_psp_resnet50_ade,
Zhang's avatar
v0.4.2  
Zhang committed
45
46
47
        }
    name = name.lower()
    if name not in models:
Hang Zhang's avatar
Hang Zhang committed
48
        raise ValueError('%s\n\t%s' % (str(name), '\n\t'.join(sorted(models.keys()))))
Zhang's avatar
v0.4.2  
Zhang committed
49
50
    net = models[name](**kwargs)
    return net