{"record":{"id":"ebde3d4cf13fa1dc","repo":"tensorflow/models","slug":"optimizer-is-not-an-object-of-tf-keras-optimizers","errorCode":null,"errorMessage":"optimizer is not an object of tf_keras.optimizers.Optimizer","messagePattern":"optimizer is not an object of tf_keras\\.optimizers\\.Optimizer","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"official/legacy/image_classification/optimizer_factory.py","lineNumber":88,"sourceCode":"      slow_step_size: A floating point value. The ratio for updating the slow\n        weights.\n      name: Optional name for the operations created when applying gradients.\n        Defaults to \"Lookahead\".\n      **kwargs: keyword arguments. Allowed to be {`clipnorm`, `clipvalue`, `lr`,\n        `decay`}. `clipnorm` is clip gradients by norm; `clipvalue` is clip\n        gradients by value, `decay` is included for backward compatibility to\n        allow time inverse decay of learning rate. `lr` is included for backward\n        compatibility, recommended to use `learning_rate` instead.\n    \"\"\"\n    super().__init__(name, **kwargs)\n\n    if isinstance(optimizer, str):\n      optimizer = tf_keras.optimizers.get(optimizer)\n    if not isinstance(\n        optimizer,\n        (tf_keras.optimizers.Optimizer, tf_keras.optimizers.legacy.Optimizer),\n    ):\n      raise TypeError(\n          'optimizer is not an object of tf_keras.optimizers.Optimizer'\n      )\n\n    self._optimizer = optimizer\n    self._set_hyper('sync_period', sync_period)\n    self._set_hyper('slow_step_size', slow_step_size)\n    self._initialized = False\n    self._track_trackable(self._optimizer, 'lh_base_optimizer')\n\n  def _create_slots(self, var_list):\n    self._optimizer._create_slots(var_list=var_list)  # pylint: disable=protected-access\n    for var in var_list:\n      self.add_slot(var, 'slow', initializer=var)\n\n  def _create_hypers(self):\n    self._optimizer._create_hypers()  # pylint: disable=protected-access\n\n  def _prepare(self, var_list):","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/legacy/image_classification/optimizer_factory.py#L70-L106","documentation":"Error \"optimizer is not an object of tf_keras.optimizers.Optimizer\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/legacy/image_classification/optimizer_factory.py:88 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"}