open-mmlab/mmdetection · warning
``build_match_cost`` would be deprecated soon, please use ``
Error message
``build_match_cost`` would be deprecated soon, please use ``mmdet.registry.TASK_UTILS.build()``
What it means
Deprecation warning from build_match_cost: the helper only delegates to TASK_UTILS.build and is scheduled for removal. Construct match costs (e.g. BBoxL1Cost, FocalLossCost, IoUCost) through mmdet.registry.TASK_UTILS instead.
Source
Thrown at mmdet/models/task_modules/builder.py:32
def build_bbox_coder(cfg, **default_args):
"""Builder of box coder."""
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_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)
View on GitHub (pinned to cfd5d3a985)
Solutions
- Replace with TASK_UTILS.build(cfg, default_args=...)
- Import TASK_UTILS from mmdet.registry
- Drop imports of the deprecated builder module
Example fix
# before from mmdet.models import build_match_cost cost = build_match_cost(cfg) # after from mmdet.registry import TASK_UTILS cost = TASK_UTILS.build(cfg)
Defensive patterns
Strategy: fallback
Validate before calling
from mmdet.registry import TASK_UTILS cost = TASK_UTILS.build(cfg)
Try / catch
with warnings.catch_warnings():
warnings.simplefilter('ignore', DeprecationWarning)
cost = build_match_cost(cfg) Prevention
- Build match costs via TASK_UTILS
- Centralize component construction in one factory to ease migrations
When it happens
Trigger: Calling build_match_cost(cfg) when wiring up matcher costs for DETR-style heads; legacy imports of the builder.
Common situations: DETR / Deformable-DETR head customization using old builder APIs during mmdet upgrades.
Related errors
- ``build_sampler`` would be deprecated soon, please use ``mmd
- ``build_iou_calculator`` would be deprecated soon, please us
- ``build_assigner`` would be deprecated soon, please use ``mm
- ``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/0786e8ad0aff6cba.
Report an issue: GitHub.