class_docstr: The Trainer class inherits tf.keras.Model and contains everything a
  model needs for training. It exposes trainer.cyclic_fit method which trains
  the model using Cyclic Learning rate discovered by Leslie Smith.
  
  Arguments:
  ds: Dataset object
  model: object of type tf.keras.Model
  num_classes (int, None): number of classes in the dataset. If None then will auto infer from Dataset
class_docstr_tok: ["The","Trainer","class","inherits","tf.keras.Model","and","contains","everything","a","model","needs","for","training",".","It","exposes","trainer.cyclic_fit","method","which","trains","the","model","using","Cyclic","Learning","rate","discovered","by","Leslie","Smith",".","Arguments",":","ds",":","Dataset","object","model",":","object","of","type","tf.keras.Model","num_classes","(","int",",","None",")",":","number","of","classes","in","the","dataset",".","If","None","then","will","auto","infer","from","Dataset"]
code: def summary(self):
      return self.model.summary()
  
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 3 for calling the Trainer obj's underlying member method code with example usage: obj.summary() and returns: self