Switch to unified view

a b/BioSeqNet/resnest/gluon/ablation.py
1
##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
## Created by: Hang Zhang
3
## Email: zhanghang0704@gmail.com
4
## Copyright (c) 2020
5
##
6
## LICENSE file in the root directory of this source tree 
7
##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8
9
"""Ablation Study Models for ResNeSt"""
10
from .resnet import ResNet, Bottleneck
11
from mxnet import cpu
12
13
__all__ = ['resnest50_fast_1s1x64d', 'resnest50_fast_2s1x64d', 'resnest50_fast_4s1x64d',
14
           'resnest50_fast_1s2x40d', 'resnest50_fast_2s2x40d', 'resnest50_fast_4s2x40d',
15
           'resnest50_fast_1s4x24d']
16
17
def resnest50_fast_1s1x64d(pretrained=False, root='~/.mxnet/models', ctx=cpu(0), **kwargs):
18
    model = ResNet(Bottleneck, [3, 4, 6, 3],
19
                   radix=1, cardinality=1, bottleneck_width=64,
20
                   deep_stem=True, avg_down=True,
21
                   avd=True, avd_first=True,
22
                   use_splat=True, dropblock_prob=0.1,
23
                   name_prefix='resnetv1f_', **kwargs)
24
    if pretrained:
25
        from .model_store import get_model_file
26
        model.load_parameters(get_model_file('resnest50_fast_1s1x64d',
27
                                             root=root), ctx=ctx)
28
    return model
29
30
def resnest50_fast_2s1x64d(pretrained=False, root='~/.mxnet/models', ctx=cpu(0), **kwargs):
31
    model = ResNet(Bottleneck, [3, 4, 6, 3],
32
                   radix=2, cardinality=1, bottleneck_width=64,
33
                   deep_stem=True, avg_down=True,
34
                   avd=True, avd_first=True,
35
                   use_splat=True, dropblock_prob=0.1,
36
                   name_prefix='resnetv1f_', **kwargs)
37
    if pretrained:
38
        from .model_store import get_model_file
39
        model.load_parameters(get_model_file('resnest50_fast_2s1x64d',
40
                                             root=root), ctx=ctx)
41
    return model
42
43
def resnest50_fast_4s1x64d(pretrained=False, root='~/.mxnet/models', ctx=cpu(0), **kwargs):
44
    model = ResNet(Bottleneck, [3, 4, 6, 3],
45
                   radix=4, cardinality=1, bottleneck_width=64,
46
                   deep_stem=True, avg_down=True,
47
                   avd=True, avd_first=True,
48
                   use_splat=True, dropblock_prob=0.1,
49
                   name_prefix='resnetv1f_', **kwargs)
50
    if pretrained:
51
        from .model_store import get_model_file
52
        model.load_parameters(get_model_file('resnest50_fast_4s1x64d',
53
                                             root=root), ctx=ctx)
54
    return model
55
56
def resnest50_fast_1s2x40d(pretrained=False, root='~/.mxnet/models', ctx=cpu(0), **kwargs):
57
    model = ResNet(Bottleneck, [3, 4, 6, 3],
58
                   radix=1, cardinality=2, bottleneck_width=40,
59
                   deep_stem=True, avg_down=True,
60
                   avd=True, avd_first=True,
61
                   use_splat=True, dropblock_prob=0.1,
62
                   name_prefix='resnetv1f_', **kwargs)
63
    if pretrained:
64
        from .model_store import get_model_file
65
        model.load_parameters(get_model_file('resnest50_fast_1s2x40d',
66
                                             root=root), ctx=ctx)
67
    return model
68
69
def resnest50_fast_2s2x40d(pretrained=False, root='~/.mxnet/models', ctx=cpu(0), **kwargs):
70
    model = ResNet(Bottleneck, [3, 4, 6, 3],
71
                   radix=2, cardinality=2, bottleneck_width=40,
72
                   deep_stem=True, avg_down=True,
73
                   avd=True, avd_first=True,
74
                   use_splat=True, dropblock_prob=0.1,
75
                   name_prefix='resnetv1f_', **kwargs)
76
    if pretrained:
77
        from .model_store import get_model_file
78
        model.load_parameters(get_model_file('resnest50_fast_2s2x40d',
79
                                             root=root), ctx=ctx)
80
    return model
81
82
def resnest50_fast_4s2x40d(pretrained=False, root='~/.mxnet/models', ctx=cpu(0), **kwargs):
83
    model = ResNet(Bottleneck, [3, 4, 6, 3],
84
                   radix=4, cardinality=2, bottleneck_width=40,
85
                   deep_stem=True, avg_down=True,
86
                   avd=True, avd_first=True,
87
                   use_splat=True, dropblock_prob=0.1,
88
                   name_prefix='resnetv1f_', **kwargs)
89
    if pretrained:
90
        from .model_store import get_model_file
91
        model.load_parameters(get_model_file('resnest50_fast_4s2x40d',
92
                                             root=root), ctx=ctx)
93
    return model
94
95
def resnest50_fast_1s4x24d(pretrained=False, root='~/.mxnet/models', ctx=cpu(0), **kwargs):
96
    model = ResNet(Bottleneck, [3, 4, 6, 3],
97
                   radix=1, cardinality=4, bottleneck_width=24,
98
                   deep_stem=True, avg_down=True,
99
                   avd=True, avd_first=True,
100
                   use_splat=True, dropblock_prob=0.1,
101
                   name_prefix='resnetv1f_', **kwargs)
102
    if pretrained:
103
        from .model_store import get_model_file
104
        model.load_parameters(get_model_file('resnest50_fast_1s4x24d',
105
                                             root=root), ctx=ctx)
106
    return model
107