__init__.py 2.62 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
WenmuZhou's avatar
WenmuZhou committed
14

15
__all__ = ["build_backbone"]
WenmuZhou's avatar
WenmuZhou committed
16
17
18


def build_backbone(config, model_type):
zhoujun's avatar
zhoujun committed
19
    if model_type == "det" or model_type == "table":
WenmuZhou's avatar
WenmuZhou committed
20
21
        from .det_mobilenet_v3 import MobileNetV3
        from .det_resnet_vd import ResNet
MissPenguin's avatar
MissPenguin committed
22
        from .det_resnet_vd_sast import ResNet_SAST
23
24
        support_dict = ["MobileNetV3", "ResNet", "ResNet_SAST"]
    elif model_type == "rec" or model_type == "cls":
WenmuZhou's avatar
WenmuZhou committed
25
26
        from .rec_mobilenet_v3 import MobileNetV3
        from .rec_resnet_vd import ResNet
tink2123's avatar
tink2123 committed
27
        from .rec_resnet_fpn import ResNetFPN
28
        from .rec_mv1_enhance import MobileNetV1Enhance
Topdu's avatar
Topdu committed
29
        from .rec_nrtr_mtb import MTB
andyjpaddle's avatar
andyjpaddle committed
30
        from .rec_resnet_31 import ResNet31
tink2123's avatar
tink2123 committed
31
        from .rec_resnet_aster import ResNet_ASTER
bupt906's avatar
bupt906 committed
32
        from .rec_micronet import MicroNet
33
        from .rec_efficientb3_pren import EfficientNetb3_PREN
34
        support_dict = [
tink2123's avatar
tink2123 committed
35
            'MobileNetV1Enhance', 'MobileNetV3', 'ResNet', 'ResNetFPN', 'MTB',
36
            "ResNet31", "ResNet_ASTER", 'MicroNet', 'EfficientNetb3_PREN'
37
38
        ]
    elif model_type == "e2e":
Jethong's avatar
Jethong committed
39
40
        from .e2e_resnet_vd_pg import ResNet
        support_dict = ['ResNet']
LDOUBLEV's avatar
add kie  
LDOUBLEV committed
41
42
43
    elif model_type == 'kie':
        from .kie_unet_sdmgr import Kie_backbone
        support_dict = ['Kie_backbone']
MissPenguin's avatar
MissPenguin committed
44
45
46
    elif model_type == "table":
        from .table_resnet_vd import ResNet
        from .table_mobilenet_v3 import MobileNetV3
47
        support_dict = ["ResNet", "MobileNetV3"]
48
    elif model_type == 'vqa':
WenmuZhou's avatar
WenmuZhou committed
49
50
51
52
53
        from .vqa_layoutlm import LayoutLMForSer, LayoutLMv2ForSer, LayoutLMv2ForRe, LayoutXLMForSer, LayoutXLMForRe
        support_dict = [
            "LayoutLMForSer", "LayoutLMv2ForSer", 'LayoutLMv2ForRe',
            "LayoutXLMForSer", 'LayoutXLMForRe'
        ]
WenmuZhou's avatar
WenmuZhou committed
54
55
56
    else:
        raise NotImplementedError

57
    module_name = config.pop("name")
WenmuZhou's avatar
WenmuZhou committed
58
    assert module_name in support_dict, Exception(
59
        "when model typs is {}, backbone only support {}".format(model_type,
WenmuZhou's avatar
WenmuZhou committed
60
61
62
                                                                 support_dict))
    module_class = eval(module_name)(**config)
    return module_class