class_docstr: TFTrainer is a simple but feature-complete training and eval loop for TensorFlow, optimized for 🤗 Transformers.
  
  Args:
      model ([`TFPreTrainedModel`]):
          The model to train, evaluate or use for predictions.
      args ([`TFTrainingArguments`]):
          The arguments to tweak training.
      train_dataset ([`~tf.data.Dataset`], *optional*):
          The dataset to use for training. The dataset should yield tuples of `(features, labels)` where `features`
          is a dict of input features and `labels` is the labels. If `labels` is a tensor, the loss is calculated by
          the model by calling `model(features, labels=labels)`. If `labels` is a dict, such as when using a
          QuestionAnswering head model with multiple targets, the loss is instead calculated by calling
          `model(features, **labels)`.
      eval_dataset ([`~tf.data.Dataset`], *optional*):
          The dataset to use for evaluation. The dataset should yield tuples of `(features, labels)` where `features`
          is a dict of input features and `labels` is the labels. If `labels` is a tensor, the loss is calculated by
          the model by calling `model(features, labels=labels)`. If `labels` is a dict, such as when using a
          QuestionAnswering head model with multiple targets, the loss is instead calculated by calling
          `model(features, **labels)`.
      compute_metrics (`Callable[[EvalPrediction], Dict]`, *optional*):
          The function that will be used to compute metrics at evaluation. Must take a [`EvalPrediction`] and return
          a dictionary string to metric values.
      tb_writer (`tf.summary.SummaryWriter`, *optional*):
          Object to write to TensorBoard.
      optimizers (`Tuple[tf.keras.optimizers.Optimizer, tf.keras.optimizers.schedules.LearningRateSchedule]`, *optional*):
          A tuple containing the optimizer and the scheduler to use. The optimizer default to an instance of
          [`tf.keras.optimizers.Adam`] if `args.weight_decay_rate` is 0 else an instance of [`AdamWeightDecay`]. The
          scheduler will default to an instance of [`tf.keras.optimizers.schedules.PolynomialDecay`] if
          `args.num_warmup_steps` is 0 else an instance of [`WarmUp`].
docstr: Run prediction and returns predictions and potential metrics.
  
  Depending on the dataset and your use case, your test dataset may contain labels. In that case, this method
  will also return metrics, like in `evaluate()`.
  
  Args:
      test_dataset ([`~tf.data.Dataset`]):
          Dataset to run the predictions on. The dataset should yield tuples of `(features, labels)` where
          `features` is a dict of input features and `labels` is the labels. If `labels` is a tensor, the loss is
          calculated by the model by calling `model(features, labels=labels)`. If `labels` is a dict, such as
          when using a QuestionAnswering head model with multiple targets, the loss is instead calculated by
          calling `model(features, **labels)`
  
  Returns: *NamedTuple* A namedtuple with the following keys:
  
      - predictions (`np.ndarray`): The predictions on `test_dataset`.
      - label_ids (`np.ndarray`, *optional*): The labels (if the dataset contained some).
      - metrics (`Dict[str, float]`, *optional*): The potential dictionary of metrics (if the dataset contained
        labels).
docstr_tok: ["Run","prediction","and","returns","predictions","and","potential","metrics",".","Depending","on","the","dataset","and","your","use","case",",","your","test","dataset","may","contain","labels",".","In","that","case",",","this","method","will","also","return","metrics",",","like","in","`","evaluate","(",")","`",".","Args",":","test_dataset","(","[","`","~tf.data.Dataset","`","]",")",":","Dataset","to","run","the","predictions","on",".","The","dataset","should","yield","tuples","of","`","(","features",",","labels",")","`","where","`","features","`","is","a","dict","of","input","features","and","`","labels","`","is","the","labels",".","If","`","labels","`","is","a","tensor",",","the","loss","is","calculated","by","the","model","by","calling","`","model","(","features",",","labels=labels",")","`",".","If","`","labels","`","is","a","dict",",","such","as","when","using","a","QuestionAnswering","head","model","with","multiple","targets",",","the","loss","is","instead","calculated","by","calling","`","model","(","features",",","*","*","labels",")","`","Returns",":","*","NamedTuple","*","A","namedtuple","with","the","following","keys",":","-","predictions","(","`","np.ndarray","`",")",":","The","predictions","on","`","test_dataset","`",".","-","label_ids","(","`","np.ndarray","`",",","*","optional","*",")",":","The","labels","(","if","the","dataset","contained","some",")",".","-","metrics","(","`","Dict","[","str",",","float","]","`",",","*","optional","*",")",":","The","potential","dictionary","of","metrics","(","if","the","dataset","contained","labels",")","."]
code: def predict(self, test_dataset: tf.data.Dataset) -> PredictionOutput:
      """
      Run prediction and returns predictions and potential metrics.
  
      Depending on the dataset and your use case, your test dataset may contain labels. In that case, this method
      will also return metrics, like in `evaluate()`.
  
      Args:
          test_dataset ([`~tf.data.Dataset`]):
              Dataset to run the predictions on. The dataset should yield tuples of `(features, labels)` where
              `features` is a dict of input features and `labels` is the labels. If `labels` is a tensor, the loss is
              calculated by the model by calling `model(features, labels=labels)`. If `labels` is a dict, such as
              when using a QuestionAnswering head model with multiple targets, the loss is instead calculated by
              calling `model(features, **labels)`
  
      Returns: *NamedTuple* A namedtuple with the following keys:
  
          - predictions (`np.ndarray`): The predictions on `test_dataset`.
          - label_ids (`np.ndarray`, *optional*): The labels (if the dataset contained some).
          - metrics (`Dict[str, float]`, *optional*): The potential dictionary of metrics (if the dataset contained
            labels).
      """
      test_ds, steps, num_examples = self.get_test_tfdataset(
          test_dataset
      )
  
      return self.prediction_loop(
          test_ds, steps, num_examples, description="Prediction"
      )
  
imports: import datetime
  import math
  import os
  import warnings
  from typing import Callable, Dict, Optional, Tuple
  from .utils import ENV_VARS_TRUE_VALUES
  from .integrations import is_comet_available, is_wandb_available
  import numpy
  import tensorflow
  from tensorflow.python.distribute.values import PerReplica
  from .modeling_tf_utils import TFPreTrainedModel
  from .optimization_tf import GradientAccumulator, create_optimizer
  from .trainer_utils import PREFIX_CHECKPOINT_DIR, EvalPrediction, IntervalStrategy, PredictionOutput, enable_full_determinism, set_seed
  from .training_args_tf import TFTrainingArguments
  from .utils import logging
label_desc: Use image node_id 20 for calling the TFTrainer obj's underlying member method code with example usage: obj.predict(test_dataset) and returns: self