docstr: train models For TF:
  
  Just pass train data and start training For PyTorch:     You can
  enter configs to Lightning Trainer
code: def fit(
      self,
      train_data,
      epochs,
      val_data=None,
      callbacks=None,
      **kwargs,
  ):
      """train models For TF:
  
      Just pass train data and start training For PyTorch:     You can
      enter configs to Lightning Trainer
      """
      MODE = self.MODE
      initial_epoch = self.epochs_trained
      self.epochs_trained += epochs
  
      if MODE in Learner.TF:
          return self.model.fit(
              train_data,
              epochs=epochs,
              initial_epoch=initial_epoch,
              validation_data=val_data,
              callbacks=callbacks,
          )
      if MODE in Learner.PT:
          lit_confs = kwargs.get("LIT_TRAINER_CONFIG", {})
          if not self.trainer:
              self.trainer = pl.Trainer(max_epochs=epochs, **lit_confs)
          return self.trainer.fit(self.model, train_data, val_data)
  
imports: import inspect
  from functools import partial
  from typing import Any, List, Optional, Union
  import matplotlib.cm
  import matplotlib.pyplot
  import numpy
  import tensorflow
  import tensorflow_addons
  from PIL import Image
  from tensorflow import keras
  from tensorflow.keras.models import Model
  from tf_keras_vis.gradcam import Gradcam, GradcamPlusPlus
  from tf_keras_vis.utils import normalize
  from typeguard import check_argument_types, typechecked
  from chitra.import_utils import is_installed
  from .datagenerator import Dataset
label_desc: Use image node_id 2 for calling the Learner obj's underlying member method code with example usage: obj.fit(train_data, epochs, val_data, callbacks) and returns: self, self