{"record":{"id":"acdc7aca2272fbea","repo":"huggingface/pytorch-image-models","slug":"invalid-epsilon-value-eps-acdc7a","errorCode":null,"errorMessage":"Invalid epsilon value: {eps}","messagePattern":"Invalid epsilon value: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"timm/optim/nadamw.py","lineNumber":58,"sourceCode":"    \"\"\"\n\n    def __init__(\n            self,\n            params: ParamsT,\n            lr: float = 1e-3,\n            betas: Tuple[float, float] = (0.9, 0.999),\n            eps: float = 1e-8,\n            weight_decay: float = 1e-2,\n            caution: bool = False,\n            corrected_weight_decay: bool = False,\n            maximize: bool = False,\n            foreach: Optional[bool] = None,\n            capturable: bool = False,\n    ):\n        if not 0.0 <= lr:\n            raise ValueError(f'Invalid learning rate: {lr}')\n        if not 0.0 <= eps:\n            raise ValueError(f'Invalid epsilon value: {eps}')\n        if not 0.0 <= betas[0] < 1.0:\n            raise ValueError(f'Invalid beta parameter at index 0: {betas[0]}')\n        if not 0.0 <= betas[1] < 1.0:\n            raise ValueError(f'Invalid beta parameter at index 1: {betas[1]}')\n        if not 0.0 <= weight_decay:\n            raise ValueError(f'Invalid weight_decay value: {weight_decay}')\n        defaults = dict(\n            lr=lr,\n            betas=betas,\n            eps=eps,\n            weight_decay=weight_decay,\n            caution=caution,\n            corrected_weight_decay=corrected_weight_decay,\n            foreach=foreach,\n            maximize=maximize,\n            capturable=capturable,\n        )\n        super().__init__(params, defaults)","sourceCodeStart":40,"sourceCodeEnd":76,"githubUrl":"https://github.com/huggingface/pytorch-image-models/blob/9a5261e31b3b5128526eb2658333b4c0a54464ae/timm/optim/nadamw.py#L40-L76","documentation":"NAdamW optimizer constructor validation: epsilon must satisfy 0.0 <= eps. Negative epsilon is rejected because it would break the sqrt(v)+eps denominator computation.","triggerScenarios":"Calling timm.optim.NAdamW(params, eps=-1e-8) or any negative epsilon value.","commonSituations":"Config typo on eps, or eps accidentally set from another parameter's value during refactoring.","solutions":["Use a positive eps like 1e-8 (the default)","Audit config files for sign errors on numerical stability constants"],"exampleFix":"# before\nopt = NAdamW(model.parameters(), eps=-1e-8)\n\n# after\nopt = NAdamW(model.parameters(), eps=1e-8)","handlingStrategy":"validation","validationCode":"assert eps >= 0.0","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Rely on default eps unless needed","Sanity check config diffs for sign errors"],"tags":["timm","nadamw","epsilon","valueerror"],"backgroundTag":"invalid-optimizer-hyperparameter","analyzedSha":"9a5261e31b3b5128526eb2658333b4c0a54464ae","analyzedAt":"2026-08-27T02:34:25.417Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}