code: def show_image_row(
      xlist,
      ylist=None,
      fontsize=12,
      size=(2.5, 2.5),
      tlist=None,
      filename=None,
  ):
      H, W = len(xlist), len(xlist[0])
      fig, axarr = plt.subplots(
          H, W, figsize=(size[0] * W, size[1] * H)
      )
      for w in range(W):
          for h in range(H):
              ax = get_axis(axarr, H, W, h, w)
              ax.imshow(xlist[h][w].permute(1, 2, 0))
              ax.xaxis.set_ticks([])
              ax.yaxis.set_ticks([])
              ax.xaxis.set_ticklabels([])
              ax.yaxis.set_ticklabels([])
              if ylist and w == 0:
                  ax.set_ylabel(ylist[h], fontsize=fontsize)
              if tlist:
                  ax.set_title(tlist[h][w], fontsize=fontsize)
      if filename is not None:
          plt.savefig(filename, bbox_inches="tight")
      plt.show()
  
file_path: robustness/robustness/tools/vis_tools.py
imports: import numpy
  import matplotlib.pyplot
  from sklearn.decomposition import PCA
  from sklearn import manifold
  import seaborn
label_desc: Use image node_id 2 for calling a global function with example usage: show_image_row(xlist, ylist, fontsize, size, tlist, filename) without return types