docstr: Args:
  gradcam_pp: if True GradCam class will be used else GradCamPlusplus
  clone: whether GradCam will clone learner.model
code: def __init__(
      self, gradcam_pp: bool, learner: Trainer, clone: bool = False
  ):
      """Args:
      gradcam_pp: if True GradCam class will be used else GradCamPlusplus
      clone: whether GradCam will clone learner.model
      """
      if gradcam_pp:
          self.gradcam_fn = GradcamPlusPlus
      else:
          self.gradcam_fn = Gradcam
      self.learner = learner
  
      self.gradcam = self.gradcam_fn(
          learner.model, self.model_modifier, clone=clone
      )
  
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 1 to create a new InterpretModel object  with example: obj = InterpretModel(gradcam_pp, learner, clone)