__init__.py 1.59 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
16

import copy

littletomatodonkey's avatar
littletomatodonkey committed
17
18
19
20
# det loss
from .det_db_loss import DBLoss
from .det_east_loss import EASTLoss
from .det_sast_loss import SASTLoss
WenmuZhou's avatar
WenmuZhou committed
21
from .det_pse_loss import PSELoss
WenmuZhou's avatar
WenmuZhou committed
22

littletomatodonkey's avatar
littletomatodonkey committed
23
24
25
26
27
28
29
30
31
32
# rec loss
from .rec_ctc_loss import CTCLoss
from .rec_att_loss import AttentionLoss
from .rec_srn_loss import SRNLoss

# cls loss
from .cls_loss import ClsLoss

# e2e loss
from .e2e_pg_loss import PGLoss
WenmuZhou's avatar
WenmuZhou committed
33

littletomatodonkey's avatar
littletomatodonkey committed
34
35
# basic loss function
from .basic_loss import DistanceLoss
WenmuZhou's avatar
WenmuZhou committed
36

littletomatodonkey's avatar
littletomatodonkey committed
37
38
# combined loss function
from .combined_loss import CombinedLoss
zhoujun's avatar
zhoujun committed
39

MissPenguin's avatar
MissPenguin committed
40
41
# table loss
from .table_att_loss import TableAttentionLoss
littletomatodonkey's avatar
littletomatodonkey committed
42

WenmuZhou's avatar
WenmuZhou committed
43

littletomatodonkey's avatar
littletomatodonkey committed
44
def build_loss(config):
LDOUBLEV's avatar
LDOUBLEV committed
45
    support_dict = [
WenmuZhou's avatar
WenmuZhou committed
46
        'DBLoss', 'PSELoss', 'EASTLoss', 'SASTLoss', 'CTCLoss', 'ClsLoss', 'AttentionLoss',
MissPenguin's avatar
MissPenguin committed
47
        'SRNLoss', 'PGLoss', 'CombinedLoss', 'TableAttentionLoss'
littletomatodonkey's avatar
littletomatodonkey committed
48
    ]
WenmuZhou's avatar
WenmuZhou committed
49
50
51
52
53
54
    config = copy.deepcopy(config)
    module_name = config.pop('name')
    assert module_name in support_dict, Exception('loss only support {}'.format(
        support_dict))
    module_class = eval(module_name)(**config)
    return module_class