{"record":{"id":"03163a88c7289eb9","repo":"tensorflow/models","slug":"decay-is-deprecated-in-new-keras-optimizer-plea","errorCode":null,"errorMessage":"`decay` is deprecated in new Keras optimizer, please reflect the decay logic in `lr` or set `use_legacy_optimizer=True` to use the legacy optimizer.","messagePattern":"`decay` is deprecated in new Keras optimizer, please reflect the decay logic in `lr` or set `use_legacy_optimizer=True` to use the legacy optimizer\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"official/modeling/optimization/optimizer_factory.py","lineNumber":242,"sourceCode":"    ## Delete clipnorm, clipvalue, global_clipnorm if None\n    if optimizer_dict['clipnorm'] is None:\n      del optimizer_dict['clipnorm']\n    if optimizer_dict['clipvalue'] is None:\n      del optimizer_dict['clipvalue']\n    if optimizer_dict['global_clipnorm'] is None:\n      del optimizer_dict['global_clipnorm']\n\n    optimizer_dict['learning_rate'] = lr\n    if gradient_aggregator is not None:\n      optimizer_dict['gradient_aggregator'] = gradient_aggregator\n    if gradient_transformers is not None:\n      optimizer_dict['gradient_transformers'] = gradient_transformers\n\n    if use_legacy_optimizer:\n      optimizer = LEGACY_OPTIMIZERS_CLS[self._optimizer_type](**optimizer_dict)\n    else:\n      if 'decay' in optimizer_dict:\n        raise ValueError(\n            '`decay` is deprecated in new Keras optimizer, please reflect the '\n            'decay logic in `lr` or set `use_legacy_optimizer=True` to use the '\n            'legacy optimizer.')\n      optimizer = NEW_OPTIMIZERS_CLS[self._optimizer_type](**optimizer_dict)\n\n    if self._use_ema:\n      if not use_legacy_optimizer:\n        raise ValueError(\n            'EMA can only work with the legacy optimizer, please set '\n            '`use_legacy_optimizer=True`.')\n      optimizer = ema_optimizer.ExponentialMovingAverage(\n          optimizer, **self._ema_config.as_dict())\n    if postprocessor:\n      optimizer = postprocessor(optimizer)\n    if isinstance(optimizer, tf_keras.optimizers.Optimizer):\n      return optimizer\n    # The following check makes sure the function won't break in older TF\n    # version because of missing the experimental/legacy package.","sourceCodeStart":224,"sourceCodeEnd":260,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/modeling/optimization/optimizer_factory.py#L224-L260","documentation":"Error \"`decay` is deprecated in new Keras optimizer, please reflect the decay logic in `lr` or set `use_legacy_optimizer=True` to use the legacy optimizer.\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/modeling/optimization/optimizer_factory.py:242 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e006f5f0d534913e49c1f1dae87364039fa607e2","analyzedAt":"2026-08-24T14:09:15.576Z","schemaVersion":2},"datasetVersion":"2026-08-24T17:17:21.512Z"}