code: def stats(tensor_and_name):
      imgstats = []
      for img, name in tensor_and_name:
          immax = img.max()
          immin = img.min()
          imgstats.append(
              {
                  "height": img.shape[0],
                  "max": str(immax),
                  "mean": str(img.mean()),
                  "min": str(immin),
                  "name": name,
                  "range": str(immax - immin),
                  "shape": str((img.shape[1], img.shape[2])),
              }
          )
      return imgstats
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from ..proto.summary_pb2 import Summary
  from ..proto.summary_pb2 import SummaryMetadata
  from ..proto.tensor_pb2 import TensorProto
  from ..proto.tensor_shape_pb2 import TensorShapeProto
  import os
  import time
  import numpy
  from .file_system_tools import read_pickle, write_pickle, write_file
  from .shared_config import PLUGIN_NAME, TAG_NAME, SUMMARY_FILENAME, DEFAULT_CONFIG, CONFIG_FILENAME, SUMMARY_COLLECTION_KEY_NAME, SECTION_INFO_FILENAME
  from .None import video_writing
label_desc: Use image node_id 4 for calling the Beholder obj's underlying member method code with example usage: obj.stats(tensor_and_name) and returns: imgstats