open-mmlab/mmdetection · warning

``build_prior_generator`` would be deprecated soon, please u

Error message

``build_prior_generator`` would be deprecated soon, please use ``mmdet.registry.TASK_UTILS.build()`` 

What it means

Deprecation warning from build_prior_generator: it merely delegates to TASK_UTILS.build and is going away. Build prior/anchor generators (AnchorGenerator, SSDAnchorGenerator, ...) via mmdet.registry.TASK_UTILS.build(cfg, default_args).

Source

Thrown at mmdet/models/task_modules/builder.py:52

    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)


def build_anchor_generator(cfg, default_args=None):
    warnings.warn(
        '``build_anchor_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

  1. Use TASK_UTILS.build(cfg, default_args=...)
  2. Update imports to mmdet.registry
  3. Migrate any remaining build_* shim calls in the same pass

Example fix

# before
from mmdet.models import build_prior_generator
gen = build_prior_generator(cfg)
# after
from mmdet.registry import TASK_UTILS
gen = TASK_UTILS.build(cfg)
Defensive patterns

Strategy: fallback

Validate before calling

from mmdet.registry import TASK_UTILS
gen = TASK_UTILS.build(cfg)

Try / catch

with warnings.catch_warnings():
    warnings.simplefilter('ignore', DeprecationWarning)
    gen = build_prior_generator(cfg)

Prevention

When it happens

Trigger: Calling build_prior_generator(cfg) — e.g. in tests like test_standard_points_generator or custom detectors wiring anchor generators.

Common situations: Porting code from old mmdet builder helpers; unit tests still exercising the legacy builders.

Related errors


AI-assisted analysis of open-mmlab/mmdetection@cfd5d3a985 (2026-08-27). Data as JSON: /api/errors/a381866f5c46aafe. Report an issue: GitHub.