tensorflow/models · error · ValueError

The iterator output is neither a tuple nor a dictionary. It

Error message

The iterator output is neither a tuple nor a dictionary. It is not implemented to support such outputs.

What it means

Error "The iterator output is neither a tuple nor a dictionary. It is not implemented to support such outputs." thrown in tensorflow/models.

Source

Thrown at official/modeling/multitask/multitask.py:130

      multi_task_model: a MultiTaskBaseModel instance.
      optimizer: a tf.optimizers.Optimizer.
      task_metrics: a dictionary of task names and per-task metrics.
      **kwargs: other arguments to pass through.

    Returns:
      A dictionary of losses, inculding per-task losses and their weighted sum.
    """
    losses = {}
    with tf.GradientTape() as tape:
      total_loss = 0.0
      for name, model in multi_task_model.sub_tasks.items():
        inputs = task_inputs[name]
        if isinstance(inputs, tuple) and len(inputs) == 2:
          features, labels = inputs
        elif isinstance(inputs, dict):
          features, labels = inputs, inputs
        else:
          raise ValueError("The iterator output is neither a tuple nor a "
                           "dictionary. It is not implemented to support "
                           "such outputs.")
        outputs = model(features, training=True)
        task_loss = self.tasks[name].build_losses(labels, outputs)
        task_weight = self.task_weight(name)
        total_loss += task_weight * task_loss
        losses[name] = task_loss
        self.tasks[name].process_metrics(task_metrics[name], labels, outputs,
                                         **kwargs)

      # Scales loss as the default gradients allreduce performs sum inside
      # the optimizer.
      scaled_loss = total_loss / tf.distribute.get_strategy(
      ).num_replicas_in_sync
    tvars = multi_task_model.trainable_variables
    grads = tape.gradient(scaled_loss, tvars)
    optimizer.apply_gradients(list(zip(grads, tvars)))
    losses["total_loss"] = total_loss

View on GitHub (pinned to e006f5f0d5)

When it happens

Trigger: Thrown at official/modeling/multitask/multitask.py:130 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/2e8cde10fe365802. Report an issue: GitHub.