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: Computes the loss of the given features and labels pair.
  
  Subclass and override this method if you want to inject some custom behavior.
  
  Args:
      features (`tf.Tensor`): A batch of input features.
      labels (`tf.Tensor`): A batch of labels.
      training (`bool`): Whether or not to run the model in training mode.
  
  Returns:
      A tuple of two `tf.Tensor`: The loss and logits.
docstr_tok: ["Computes","the","loss","of","the","given","features","and","labels","pair",".","Subclass","and","override","this","method","if","you","want","to","inject","some","custom","behavior",".","Args",":","features","(","`","tf.Tensor","`",")",":","A","batch","of","input","features",".","labels","(","`","tf.Tensor","`",")",":","A","batch","of","labels",".","training","(","`","bool","`",")",":","Whether","or","not","to","run","the","model","in","training","mode",".","Returns",":","A","tuple","of","two","`","tf.Tensor","`",":","The","loss","and","logits","."]
code: def run_model(self, features, labels, training):
      """
      Computes the loss of the given features and labels pair.
  
      Subclass and override this method if you want to inject some custom behavior.
  
      Args:
          features (`tf.Tensor`): A batch of input features.
          labels (`tf.Tensor`): A batch of labels.
          training (`bool`): Whether or not to run the model in training mode.
  
      Returns:
          A tuple of two `tf.Tensor`: The loss and logits.
      """
  
      if (
          self.args.past_index >= 0
          and getattr(self, "_past", None) is not None
      ):
          features["mems"] = self._past
  
      if isinstance(labels, (dict)):
          outputs = self.model(features, training=training, **labels)[
              :2
          ]
      else:
          outputs = self.model(
              features, labels=labels, training=training
          )[:2]
  
      loss, logits = outputs[:2]
  
      if self.args.past_index >= 0:
          self._past = outputs[self.args.past_index]
  
      return loss, logits
  
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 19 for calling the TFTrainer obj's underlying member method code with example usage: obj.run_model(features, labels, training) and returns: loss,  logits