tensorflow/models · error · ValueError

Only 'all' or 'backbone' can be used to initialize the…

Error message

Only 'all' or 'backbone' can be used to initialize the model.

What it means

Config guard in ImageClassificationTask.initialize: checkpoint restore dispatches on task_config.init_checkpoint_modules ('all' → whole model, 'backbone' → backbone only); any other value reaches this raise, meaning init_checkpoint_modules was set to a string the restore logic cannot interpret.

Solutions

  1. Set the initialization mode to 'all' or 'backbone' when loading classification weights.
  2. Check the init_checkpoint_modules config value.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at official/vision/tasks/image_classification.py:85 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/51e93cbf710d2eeb. Report an issue: GitHub.

Appendix: source

Thrown at official/vision/tasks/image_classification.py:85

    """Loads pretrained checkpoint."""
    if not self.task_config.init_checkpoint:
      return

    ckpt_dir_or_file = self.task_config.init_checkpoint
    if tf.io.gfile.isdir(ckpt_dir_or_file):
      ckpt_dir_or_file = tf.train.latest_checkpoint(ckpt_dir_or_file)

    # Restoring checkpoint.
    if self.task_config.init_checkpoint_modules == 'all':
      ckpt = tf.train.Checkpoint(model=model)
      status = ckpt.read(ckpt_dir_or_file)
      status.expect_partial().assert_existing_objects_matched()
    elif self.task_config.init_checkpoint_modules == 'backbone':
      ckpt = tf.train.Checkpoint(backbone=model.backbone)
      status = ckpt.read(ckpt_dir_or_file)
      status.expect_partial().assert_existing_objects_matched()
    else:
      raise ValueError(
          "Only 'all' or 'backbone' can be used to initialize the model.")

    logging.info('Finished loading pretrained checkpoint from %s',
                 ckpt_dir_or_file)

  def build_inputs(
      self,
      params: exp_cfg.DataConfig,
      input_context: Optional[tf.distribute.InputContext] = None
  ) -> tf.data.Dataset:
    """Builds classification input."""

    num_classes = self.task_config.model.num_classes
    input_size = self.task_config.model.input_size
    image_field_key = self.task_config.train_data.image_field_key
    label_field_key = self.task_config.train_data.label_field_key
    is_multilabel = self.task_config.train_data.is_multilabel

View on GitHub (pinned to e006f5f0d5)