{"record":{"id":"0725152939303d56","repo":"huggingface/pytorch-image-models","slug":"dropblock2d-got-unexpected-keyword-argument-k","errorCode":null,"errorMessage":"DropBlock2d() got unexpected keyword argument '{k}'","messagePattern":"DropBlock2d\\(\\) got unexpected keyword argument '(.+?)'","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"timm/layers/drop.py","lineNumber":141,"sourceCode":"            couple_channels: bool = True,\n            scale_by_keep: bool = True,\n            **kwargs,\n    ):\n        super().__init__()\n        self.drop_prob = drop_prob\n        self.gamma_scale = gamma_scale\n        self.block_size = block_size\n        self.with_noise = with_noise\n        self.inplace = inplace\n        self.couple_channels = couple_channels\n        self.scale_by_keep = scale_by_keep\n\n        # Backwards compatibility: silently consume args removed in v1.0.23, warn on unknown\n        deprecated_args = {'batchwise', 'fast'}\n        for k in kwargs:\n            if k not in deprecated_args:\n                import warnings\n                warnings.warn(f\"DropBlock2d() got unexpected keyword argument '{k}'\")\n\n    def forward(self, x):\n        if not self.training or not self.drop_prob:\n            return x\n        return drop_block_2d(\n            x,\n            drop_prob=self.drop_prob,\n            block_size=self.block_size,\n            gamma_scale=self.gamma_scale,\n            with_noise=self.with_noise,\n            inplace=self.inplace,\n            couple_channels=self.couple_channels,\n            scale_by_keep=self.scale_by_keep,\n        )\n\n\ndef drop_path(x, drop_prob: float = 0., training: bool = False, scale_by_keep: bool = True):\n    \"\"\"Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/huggingface/pytorch-image-models/blob/9a5261e31b3b5128526eb2658333b4c0a54464ae/timm/layers/drop.py#L123-L159","documentation":"DropBlock2d in timm/layers/drop.py consumes unknown **kwargs with a warning for backwards compatibility: removed args ('batchwise', 'fast') are silently ignored, but any other unexpected keyword (e.g. 'drop_prob' misspelled, 'gamma', 'block_size' typo) triggers this warning and the arg is dropped.","triggerScenarios":"Passing DropBlock2d(drop_prob=0.1, block_size=7, batchwise=True) (ignored silently); or a misspelled/foreign kwarg like DropBlock2d(prob=0.1, size=7) which warns and is discarded.","commonSituations":"Old training scripts from timm <1.0.23; copy-pasting DropPath-style args; config systems that pass all hparams through **kwargs, leaking unrelated keys into DropBlock2d.","solutions":["Remove or fix misspelled kwargs so only drop_prob and block_size are passed","Delete legacy 'batchwise'/'fast' args from configs (they do nothing now)","If a config dict is splatted, filter keys to the known signature"],"exampleFix":"# before\ndrop = DropBlock2d(drop_prob=0.1, block_size=7, batchwise=True, fast=True, prob=0.2)\n# after\ndrop = DropBlock2d(drop_prob=0.1, block_size=7)","handlingStrategy":"validation","validationCode":"import inspect\\nfrom timm.layers.drop import DropBlock2d\\nvalid = set(inspect.signature(DropBlock2d.__init__).parameters) | {'batchwise', 'fast'}\\nkwargs = {k: v for k, v in cfg.items() if k in valid}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Filter config dicts before splatting into layer constructors","Purge pre-1.0.23 args (batchwise, fast) from scripts"],"tags":["dropblock","deprecated-args","kwargs","timm"],"backgroundTag":"deprecated-argument","analyzedSha":"9a5261e31b3b5128526eb2658333b4c0a54464ae","analyzedAt":"2026-08-27T02:34:25.417Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}