{"record":{"id":"aae07f9899b672ba","repo":"tensorflow/models","slug":"averagemodelcheckpoint-is-only-used-when-trainingw","errorCode":null,"errorMessage":"AverageModelCheckpoint is only used when trainingwith MovingAverage","messagePattern":"AverageModelCheckpoint is only used when trainingwith MovingAverage","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"official/legacy/image_classification/callbacks.py","lineNumber":235,"sourceCode":"  \"\"\"\n\n  def __init__(self,\n               update_weights: bool,\n               filepath: str,\n               monitor: str = 'val_loss',\n               verbose: int = 0,\n               save_best_only: bool = False,\n               save_weights_only: bool = False,\n               mode: str = 'auto',\n               save_freq: str = 'epoch',\n               **kwargs):\n    self.update_weights = update_weights\n    super().__init__(filepath, monitor, verbose, save_best_only,\n                     save_weights_only, mode, save_freq, **kwargs)\n\n  def set_model(self, model):\n    if not isinstance(model.optimizer, optimization.ExponentialMovingAverage):\n      raise TypeError('AverageModelCheckpoint is only used when training'\n                      'with MovingAverage')\n    return super().set_model(model)\n\n  def _save_model(self, epoch, logs):\n    assert isinstance(self.model.optimizer,\n                      optimization.ExponentialMovingAverage)\n\n    if self.update_weights:\n      self.model.optimizer.assign_average_vars(self.model.variables)\n      return super()._save_model(epoch, logs)  # pytype: disable=attribute-error  # typed-keras\n    else:\n      # Note: `model.get_weights()` gives us the weights (non-ref)\n      # whereas `model.variables` returns references to the variables.\n      non_avg_weights = self.model.get_weights()\n      self.model.optimizer.assign_average_vars(self.model.variables)\n      # result is currently None, since `super._save_model` doesn't\n      # return anything, but this may change in the future.\n      result = super()._save_model(epoch, logs)  # pytype: disable=attribute-error  # typed-keras","sourceCodeStart":217,"sourceCodeEnd":253,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/legacy/image_classification/callbacks.py#L217-L253","documentation":"Error \"AverageModelCheckpoint is only used when trainingwith MovingAverage\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/legacy/image_classification/callbacks.py:235 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"}