open-mmlab/mmdetection · warning
``build_assigner`` would be deprecated soon, please use ``mm
Error message
``build_assigner`` would be deprecated soon, please use ``mmdet.registry.TASK_UTILS.build()``
What it means
Deprecation warning from build_assigner: the wrapper just calls TASK_UTILS.build and will be deleted. Build assigners (ATSSAssigner, MaxIoUAssigner, ...) via mmdet.registry.TASK_UTILS.build(cfg, default_args).
Source
Thrown at mmdet/models/task_modules/builder.py:39
def build_iou_calculator(cfg, default_args=None):
"""Builder of IoU calculator."""
warnings.warn(
'``build_iou_calculator`` would be deprecated soon, please use '
'``mmdet.registry.TASK_UTILS.build()`` ')
return TASK_UTILS.build(cfg, default_args=default_args)
def build_match_cost(cfg, default_args=None):
"""Builder of IoU calculator."""
warnings.warn('``build_match_cost`` would be deprecated soon, please use '
'``mmdet.registry.TASK_UTILS.build()`` ')
return TASK_UTILS.build(cfg, default_args=default_args)
def build_assigner(cfg, **default_args):
"""Builder of box assigner."""
warnings.warn('``build_assigner`` would be deprecated soon, please use '
'``mmdet.registry.TASK_UTILS.build()`` ')
return TASK_UTILS.build(cfg, default_args=default_args)
def build_sampler(cfg, **default_args):
"""Builder of box sampler."""
warnings.warn('``build_sampler`` would be deprecated soon, please use '
'``mmdet.registry.TASK_UTILS.build()`` ')
return TASK_UTILS.build(cfg, default_args=default_args)
def build_prior_generator(cfg, default_args=None):
warnings.warn(
'``build_prior_generator`` would be deprecated soon, please use '
'``mmdet.registry.TASK_UTILS.build()`` ')
return TASK_UTILS.build(cfg, default_args=default_args)
View on GitHub (pinned to cfd5d3a985)
Solutions
- Use TASK_UTILS.build(cfg, default_args=...)
- Update to mmdet.registry imports
- Remove dependence on mmdet.models.task_modules.builder
Example fix
# before from mmdet.models import build_assigner assigner = build_assigner(cfg) # after from mmdet.registry import TASK_UTILS assigner = TASK_UTILS.build(cfg)
Defensive patterns
Strategy: fallback
Validate before calling
from mmdet.registry import TASK_UTILS assigner = TASK_UTILS.build(cfg)
Try / catch
with warnings.catch_warnings():
warnings.simplefilter('ignore', DeprecationWarning)
assigner = build_assigner(cfg) Prevention
- Prefer registry-based construction for assigners
- Remove legacy builder imports during version upgrades
When it happens
Trigger: Calling build_assigner(cfg) in custom roi_heads/dense_heads; old code paths importing builders from mmdet.models.
Common situations: Upgrading custom detector components that constructed assigners via the pre-registry helper.
Related errors
- ``build_sampler`` would be deprecated soon, please use ``mmd
- ``build_iou_calculator`` would be deprecated soon, please us
- ``build_match_cost`` would be deprecated soon, please use ``
- ``build_prior_generator`` would be deprecated soon, please u
- ``build_anchor_generator`` would be deprecated soon, please
AI-assisted analysis of open-mmlab/mmdetection@cfd5d3a985 (2026-08-27).
Data as JSON: /api/errors/c99a3b6408fc7413.
Report an issue: GitHub.