code: def get_image_saliency_plot(
      image_saliency_results, cols: int = 2, figsize: tuple = None
  ):
      import matplotlib.pyplot as plt  # delayed import due to matplotlib threading issue
  
      rows = math.ceil(len(image_saliency_results) / cols)
      figsize = figsize or (8, 3 * rows)
      figure = plt.figure(figsize=figsize)
  
      for i, r in enumerate(image_saliency_results):
          ax = figure.add_subplot(rows, cols, i + 1)
          ax.set_xticks([])
          ax.set_yticks([])
          ax.set_title(
              r.title, fontdict={"fontsize": 24}
          )  #'fontweight': 'light'
  
          # upsampler = nn.Upsample(size=(raw_image.height, raw_image.width), mode='bilinear')
          saliency_upsampled = skimage.transform.resize(
              r.saliency,
              (r.raw_image.height, r.raw_image.width),
              mode="reflect",
          )
  
          image_utils.show_image(
              r.raw_image,
              img2=saliency_upsampled,
              alpha2=r.saliency_alpha,
              cmap2=r.saliency_cmap,
              ax=ax,
          )
      return figure
  
file_path: tensorwatch/tensorwatch/saliency/saliency.py
imports: from .gradcam import GradCAMExplainer
  from .backprop import VanillaGradExplainer, GradxInputExplainer, SaliencyExplainer, IntegrateGradExplainer, DeconvExplainer, GuidedBackpropExplainer, SmoothGradExplainer
  from .deeplift import DeepLIFTRescaleExplainer
  from .occlusion import OcclusionExplainer
  from .epsilon_lrp import EpsilonLrp
  from .lime_image_explainer import LimeImageExplainer, LimeImagenetExplainer
  import skimage.transform
  import torch
  import math
  from ..None import image_utils
label_desc: Use image node_id 5 for calling a global function with example usage: get_image_saliency_plot(image_saliency_results, cols, figsize) and returns: figure