{"record":{"id":"b06c417d8e06387c","repo":"tensorflow/models","slug":"summary-interval-summary-interval-must-be-a","errorCode":null,"errorMessage":"`summary interval` ({summary_interval}) must be a multiple of `steps_per_loop` ({steps_per_loop}).","messagePattern":"`summary interval` \\((.+?)\\) must be a multiple of `steps_per_loop` \\((.+?)\\)\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"orbit/controller.py","lineNumber":201,"sourceCode":"      raise ValueError(\"`trainer` and `evaluator` should not both be `None`.\")\n\n    if trainer is not None:\n      if steps_per_loop is None:\n        raise ValueError(\n            \"`steps_per_loop` is required when `trainer` is provided.\")\n      elif not callable(steps_per_loop) and (\n          not isinstance(steps_per_loop, int) or steps_per_loop < 1):\n        raise ValueError(\n            f\"`steps_per_loop` ({steps_per_loop}) must be a positive integer \"\n            \"or a callable.\")\n\n      if summary_interval is not None:\n        if summary_interval <= 0:\n          raise ValueError(\n              f\"`summary_interval` ({summary_interval}) must be larger than 0.\")\n        elif not callable(steps_per_loop) and (summary_interval % steps_per_loop\n                                               != 0):\n          raise ValueError(\n              f\"`summary interval` ({summary_interval}) must be a multiple \"\n              f\"of `steps_per_loop` ({steps_per_loop}).\")\n\n    if not isinstance(global_step, tf.Variable):\n      raise ValueError(\"`global_step` must be a `tf.Variable`.\")\n\n    self.trainer = trainer\n    self.evaluator = evaluator\n\n    self.strategy = strategy or tf.distribute.get_strategy()\n\n    self.train_actions = () if train_actions is None else tuple(train_actions)\n    self.eval_actions = () if eval_actions is None else tuple(eval_actions)\n\n    self.global_step = global_step\n    self.checkpoint_manager = checkpoint_manager\n    self._enable_async_checkpoint_saving = enable_async_checkpointing\n    self._checkpoint_options = tf.train.CheckpointOptions(","sourceCodeStart":183,"sourceCodeEnd":219,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/orbit/controller.py#L183-L219","documentation":"Error \"`summary interval` ({summary_interval}) must be a multiple of `steps_per_loop` ({steps_per_loop}).\" thrown in tensorflow/models.","triggerScenarios":"Thrown at orbit/controller.py:201 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set summary_interval to an integer multiple of steps_per_loop.","Adjust one of the two values so summary_interval % steps_per_loop == 0."],"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"}