tensorflow/models · error · TypeError

OptimizerFactory.build_optimizer returning a non-optimizer o

Error message

OptimizerFactory.build_optimizer returning a non-optimizer object: {}

What it means

Error "OptimizerFactory.build_optimizer returning a non-optimizer object: {}" thrown in tensorflow/models.

Source

Thrown at official/modeling/optimization/optimizer_factory.py:267

      if not use_legacy_optimizer:
        raise ValueError(
            'EMA can only work with the legacy optimizer, please set '
            '`use_legacy_optimizer=True`.')
      optimizer = ema_optimizer.ExponentialMovingAverage(
          optimizer, **self._ema_config.as_dict())
    if postprocessor:
      optimizer = postprocessor(optimizer)
    if isinstance(optimizer, tf_keras.optimizers.Optimizer):
      return optimizer
    # The following check makes sure the function won't break in older TF
    # version because of missing the experimental/legacy package.
    if hasattr(tf_keras.optimizers, 'experimental'):
      if isinstance(optimizer, tf_keras.optimizers.experimental.Optimizer):
        return optimizer
    if hasattr(tf_keras.optimizers, 'legacy'):
      if isinstance(optimizer, tf_keras.optimizers.legacy.Optimizer):
        return optimizer
    raise TypeError('OptimizerFactory.build_optimizer returning a '
                    'non-optimizer object: {}'.format(optimizer))

View on GitHub (pinned to e006f5f0d5)

When it happens

Trigger: Thrown at official/modeling/optimization/optimizer_factory.py:267 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tensorflow/models@e006f5f0d5 (2026-08-24). Data as JSON: /api/errors/396d1eb6cbce3826. Report an issue: GitHub.