Spaces:
Running
on
Zero
Running
on
Zero
# Copyright (c) Meta Platforms, Inc. and affiliates. | |
# All rights reserved. | |
# | |
# This source code is licensed under the license found in the | |
# LICENSE file in the root directory of this source tree. | |
"""MMEngine provides 20 root registries to support using modules across | |
projects. | |
More datails can be found at | |
https://mmengine.readthedocs.io/en/latest/advanced_tutorials/registry.html. | |
""" | |
from .build_functions import (build_model_from_cfg, build_runner_from_cfg, | |
build_scheduler_from_cfg) | |
from .registry import Registry | |
# manage all kinds of runners like `EpochBasedRunner` and `IterBasedRunner` | |
RUNNERS = Registry('runner', build_func=build_runner_from_cfg) | |
# manage runner constructors that define how to initialize runners | |
RUNNER_CONSTRUCTORS = Registry('runner constructor') | |
# manage all kinds of loops like `EpochBasedTrainLoop` | |
LOOPS = Registry('loop') | |
# manage all kinds of hooks like `CheckpointHook` | |
HOOKS = Registry('hook') | |
# manage all kinds of strategies like `NativeStrategy` and `DDPStrategy` | |
STRATEGIES = Registry('strategy') | |
# manage data-related modules | |
DATASETS = Registry('dataset') | |
DATA_SAMPLERS = Registry('data sampler') | |
TRANSFORMS = Registry('transform') | |
# mangage all kinds of modules inheriting `nn.Module` | |
MODELS = Registry('model', build_model_from_cfg) | |
# mangage all kinds of model wrappers like 'MMDistributedDataParallel' | |
MODEL_WRAPPERS = Registry('model_wrapper') | |
# mangage all kinds of weight initialization modules like `Uniform` | |
WEIGHT_INITIALIZERS = Registry('weight initializer') | |
# mangage all kinds of optimizers like `SGD` and `Adam` | |
OPTIMIZERS = Registry('optimizer') | |
# manage optimizer wrapper | |
OPTIM_WRAPPERS = Registry('optim_wrapper') | |
# manage constructors that customize the optimization hyperparameters. | |
OPTIM_WRAPPER_CONSTRUCTORS = Registry('optimizer wrapper constructor') | |
# mangage all kinds of parameter schedulers like `MultiStepLR` | |
PARAM_SCHEDULERS = Registry( | |
'parameter scheduler', build_func=build_scheduler_from_cfg) | |
# manage all kinds of metrics | |
METRICS = Registry('metric') | |
# manage evaluator | |
EVALUATOR = Registry('evaluator') | |
# manage task-specific modules like anchor generators and box coders | |
TASK_UTILS = Registry('task util') | |
# manage visualizer | |
VISUALIZERS = Registry('visualizer') | |
# manage visualizer backend | |
VISBACKENDS = Registry('vis_backend') | |
# manage logprocessor | |
LOG_PROCESSORS = Registry('log_processor') | |
# manage inferencer | |
INFERENCERS = Registry('inferencer') | |
# manage function | |
FUNCTIONS = Registry('function') | |