facebookresearch / facebookresearch/detectron2
When is the model registered?
- Dominant language
- Python
- Stars
- 34.7k
- Forks
- 7.9k
- PR merge metrics
- No merged PRs in 30d
Description
## 📚 Documentation Issue
if cfg={"MODEL": {"META_ARCHITECTURE": "GeneralizedRCNN"}}, `build_model` can get the model directly. When does the `@META_ARCH_REGISTRY.register()` take effect?
```python
import torch
from detectron2.utils.logger import _log_api_usage
from detectron2.utils.registry import Registry
META_ARCH_REGISTRY = Registry("META_ARCH") # noqa F401 isort:skip
META_ARCH_REGISTRY.__doc__ = """
Registry for meta-architectures, i.e. the whole model.
The registered object will be called with `obj(cfg)`
and expected to return a `nn.Module` object.
"""
def build_model(cfg):
"""
Build the whole model architecture, defined by ``cfg.MODEL.META_ARCHITECTURE``.
Note that it does not load any weights from ``cfg``.
"""
meta_arch = cfg.MODEL.META_ARCHITECTURE
model = META_ARCH_REGISTRY.get(meta_arch)(cfg)
model.to(torch.device(cfg.MODEL.DEVICE))
_log_api_usage("modeling.meta_arch." + meta_arch)
return model
```
After `META_ARCH_REGISTRY` is instantiated, the code does not load the file where rcnn is located. Why can we get the class(GeneralizedRCNN)?
Contributor guide
Assessment
This issue has not been assessed yet.