open-mmlab/mmdetection · warning
``build_sampler`` would be deprecated soon, please use ``mmd
Error message
``build_sampler`` would be deprecated soon, please use ``mmdet.registry.TASK_UTILS.build()``
What it means
Deprecation warning from mmdet build_bbox_coder: the helper builders in mmdet/models/task_modules/builder.py are shims over TASK_UTILS and will be removed. (Note the message text itself says 'build_sampler' — a copy-paste bug — but the warning fires for build_bbox_coder.) Use mmdet.registry.TASK_UTILS.build(cfg, default_args) directly.
Source
Thrown at mmdet/models/task_modules/builder.py:17
# Copyright (c) OpenMMLab. All rights reserved.
import warnings
from mmdet.registry import TASK_UTILS
PRIOR_GENERATORS = TASK_UTILS
ANCHOR_GENERATORS = TASK_UTILS
BBOX_ASSIGNERS = TASK_UTILS
BBOX_SAMPLERS = TASK_UTILS
BBOX_CODERS = TASK_UTILS
MATCH_COSTS = TASK_UTILS
IOU_CALCULATORS = TASK_UTILS
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)
View on GitHub (pinned to cfd5d3a985)
Solutions
- Replace build_bbox_coder(cfg, ...) with TASK_UTILS.build(cfg, default_args=...)
- Import TASK_UTILS from mmdet.registry
- Update imports of the deprecated builder module everywhere
Example fix
# before from mmdet.models import build_bbox_coder coder = build_bbox_coder(cfg) # after from mmdet.registry import TASK_UTILS coder = TASK_UTILS.build(cfg)
Defensive patterns
Strategy: fallback
Validate before calling
from mmdet.registry import TASK_UTILS assert hasattr(TASK_UTILS, 'build')
Try / catch
with warnings.catch_warnings():
warnings.simplefilter('ignore', DeprecationWarning)
coder = build_bbox_coder(cfg) # transitional Prevention
- Import builders from mmdet.registry.TASK_UTILS, not legacy shim modules
- Ban imports of mmdet.models.task_modules.builder in code review
When it happens
Trigger: Calling mmdet.models.task_modules.builder.build_bbox_coder(cfg) or importing BBOX_CODERS/build_* aliases; custom heads still importing the old builder path.
Common situations: Codebases migrating from mmdet 2.x task_modules builders to the registry-based TASK_UTILS API.
Related errors
- ``build_iou_calculator`` would be deprecated soon, please us
- ``build_match_cost`` would be deprecated soon, please use ``
- ``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/a6676563c610f1a1.
Report an issue: GitHub.