facebookresearch/detectron2 · error · ValueError
Conflicting overrides for 'bias'
Error message
Conflicting overrides for 'bias'
What it means
get_default_optimizer_params already derives bias overrides from bias_lr_factor/weight_decay_bias; passing an explicit 'bias' entry in overrides conflicts with the computed one, so the function refuses to guess which wins.
Source
Thrown at detectron2/solver/build.py:198
if overrides is None:
overrides = {}
defaults = {}
if base_lr is not None:
defaults["lr"] = base_lr
if weight_decay is not None:
defaults["weight_decay"] = weight_decay
bias_overrides = {}
if bias_lr_factor is not None and bias_lr_factor != 1.0:
# NOTE: unlike Detectron v1, we now by default make bias hyperparameters
# exactly the same as regular weights.
if base_lr is None:
raise ValueError("bias_lr_factor requires base_lr")
bias_overrides["lr"] = base_lr * bias_lr_factor
if weight_decay_bias is not None:
bias_overrides["weight_decay"] = weight_decay_bias
if len(bias_overrides):
if "bias" in overrides:
raise ValueError("Conflicting overrides for 'bias'")
overrides["bias"] = bias_overrides
if lr_factor_func is not None:
if base_lr is None:
raise ValueError("lr_factor_func requires base_lr")
norm_module_types = (
torch.nn.BatchNorm1d,
torch.nn.BatchNorm2d,
torch.nn.BatchNorm3d,
torch.nn.SyncBatchNorm,
# NaiveSyncBatchNorm inherits from BatchNorm2d
torch.nn.GroupNorm,
torch.nn.InstanceNorm1d,
torch.nn.InstanceNorm2d,
torch.nn.InstanceNorm3d,
torch.nn.LayerNorm,
torch.nn.LocalResponseNorm,
)
params: List[Dict[str, Any]] = []View on GitHub (pinned to a2f4a8771a)
Solutions
- Remove the 'bias' key from overrides and let bias_lr_factor/weight_decay_bias control it
- Or set bias_lr_factor=None and weight_decay_bias=None and keep the explicit overrides['bias']
Example fix
# before
build_optimizer(cfg, model, overrides={'bias': {'lr': 0.02}}, bias_lr_factor=2.0)
# after
build_optimizer(cfg, model, overrides={'bias': {'lr': 0.02}}, bias_lr_factor=None) Defensive patterns
Strategy: validation
Validate before calling
if 'bias' in overrides:
assert bias_lr_factor in (None, 1.0) and weight_decay_bias is None, "Conflicting overrides for 'bias'" Prevention
- Choose one mechanism for bias hyperparameters
- Document which path your custom optimizer uses
When it happens
Trigger: Calling build_optimizer with both an overrides dict containing key 'bias' and a non-default bias_lr_factor or weight_decay_bias.
Common situations: Custom build_optimizer that adds overrides={'bias': {...}} while bias_lr_factor/weight_decay_bias are still active from config.
Related errors
- bias_lr_factor requires base_lr
- lr_factor_func requires base_lr
- Cannot match one checkpoint key to multiple keys in the mode
- Class with @configurable must have a 'from_config' classmeth
- {name} must take 'cfg' as the first argument!
AI-assisted analysis of facebookresearch/detectron2@a2f4a8771a (2026-08-27).
Data as JSON: /api/errors/6b4a8d3882937a76.
Report an issue: GitHub.