{"record":{"id":"96982cc4bf3cab63","repo":"facebookresearch/detectron2","slug":"unknown-warmup-method","errorCode":null,"errorMessage":"Unknown warmup method: {}","messagePattern":"Unknown warmup method: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"detectron2/solver/lr_scheduler.py","lineNumber":53,"sourceCode":"        \"\"\"\n        Args:\n            scheduler: warmup will be added at the beginning of this scheduler\n            warmup_factor: the factor w.r.t the initial value of ``scheduler``, e.g. 0.001\n            warmup_length: the relative length (in [0, 1]) of warmup steps w.r.t the entire\n                training, e.g. 0.01\n            warmup_method: one of \"linear\" or \"constant\"\n            rescale_interval: whether we will rescale the interval of the scheduler after\n                warmup\n        \"\"\"\n        # the value to reach when warmup ends\n        end_value = scheduler(0.0) if rescale_interval else scheduler(warmup_length)\n        start_value = warmup_factor * scheduler(0.0)\n        if warmup_method == \"constant\":\n            warmup = ConstantParamScheduler(start_value)\n        elif warmup_method == \"linear\":\n            warmup = LinearParamScheduler(start_value, end_value)\n        else:\n            raise ValueError(\"Unknown warmup method: {}\".format(warmup_method))\n        super().__init__(\n            [warmup, scheduler],\n            interval_scaling=[\"rescaled\", \"rescaled\" if rescale_interval else \"fixed\"],\n            lengths=[warmup_length, 1 - warmup_length],\n        )\n\n\nclass LRMultiplier(LRScheduler):\n    \"\"\"\n    A LRScheduler which uses fvcore :class:`ParamScheduler` to multiply the\n    learning rate of each param in the optimizer.\n    Every step, the learning rate of each parameter becomes its initial value\n    multiplied by the output of the given :class:`ParamScheduler`.\n\n    The absolute learning rate value of each parameter can be different.\n    This scheduler can be used as long as the relative scale among them do\n    not change during training.\n","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/facebookresearch/detectron2/blob/a2f4a8771ab77e8411c26b27f24f9489a28a2453/detectron2/solver/lr_scheduler.py#L35-L71","documentation":"WarmupParamScheduler only supports warmup_method of 'constant' or 'linear'. Any other string (e.g. 'exp' or a typo) raises ValueError when the composite scheduler is constructed.","triggerScenarios":"Building a scheduler whose warmup method is not exactly 'constant' or 'linear', typically via cfg.SOLVER.WARMUP_METHOD.","commonSituations":"Configs migrated from other toolkits expecting exponential warmup; typos like 'Constant' (case-sensitive).","solutions":["Set cfg.SOLVER.WARMUP_METHOD = 'linear' or 'constant'","Verify exact spelling/case against build_lr_scheduler's construction of WarmupParamScheduler"],"exampleFix":"# before\ncfg.SOLVER.WARMUP_METHOD = 'exp'\n# after\ncfg.SOLVER.WARMUP_METHOD = 'linear'","handlingStrategy":"validation","validationCode":"assert cfg.SOLVER.WARMUP_METHOD in ('constant', 'linear'), cfg.SOLVER.WARMUP_METHOD","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Restrict WARMUP_METHOD to the two supported values","Add config schema checks in training entry scripts"],"tags":["detectron2","lr-scheduler","warmup","config"],"backgroundTag":"unsupported-config-value","analyzedSha":"a2f4a8771ab77e8411c26b27f24f9489a28a2453","analyzedAt":"2026-08-27T12:08:21.260Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}