BasicSR

Форк
0
/
__init__.py 
31 строка · 1.1 Кб
1
import importlib
2
from copy import deepcopy
3
from os import path as osp
4

5
from basicsr.utils import get_root_logger, scandir
6
from basicsr.utils.registry import LOSS_REGISTRY
7
from .gan_loss import g_path_regularize, gradient_penalty_loss, r1_penalty
8

9
__all__ = ['build_loss', 'gradient_penalty_loss', 'r1_penalty', 'g_path_regularize']
10

11
# automatically scan and import loss modules for registry
12
# scan all the files under the 'losses' folder and collect files ending with '_loss.py'
13
loss_folder = osp.dirname(osp.abspath(__file__))
14
loss_filenames = [osp.splitext(osp.basename(v))[0] for v in scandir(loss_folder) if v.endswith('_loss.py')]
15
# import all the loss modules
16
_model_modules = [importlib.import_module(f'basicsr.losses.{file_name}') for file_name in loss_filenames]
17

18

19
def build_loss(opt):
20
    """Build loss from options.
21

22
    Args:
23
        opt (dict): Configuration. It must contain:
24
            type (str): Model type.
25
    """
26
    opt = deepcopy(opt)
27
    loss_type = opt.pop('type')
28
    loss = LOSS_REGISTRY.get(loss_type)(**opt)
29
    logger = get_root_logger()
30
    logger.info(f'Loss [{loss.__class__.__name__}] is created.')
31
    return loss
32

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.