code: def image_summary(tag, image):
      """Outputs a `Summary` protocol buffer with image(s).
  
      Parameters
      ----------
          tag : str
              A name for the generated summary. Will also serve as a series name in TensorBoard.
          image : MXNet `NDArray` or `numpy.ndarray`
              Image data that is one of the following layout: (H, W), (C, H, W), (N, C, H, W).
              The pixel values of the image are assumed to be normalized in the range [0, 1].
              The image will be rescaled to the range [0, 255] and cast to `np.uint8` before creating
              the image protobuf.
  
      Returns
      -------
          A `Summary` protobuf of the image.
      """
      tag = _clean_tag(tag)
      image = _prepare_image(image)
      image = _make_image(image)
      return Summary(value=[Summary.Value(tag=tag, image=image)])
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import logging
  import io
  import wave
  import struct
  import json
  import re
  import numpy
  from mxnet.ndarray import NDArray
  from mxnet.symbol import Symbol
  from mxnet.gluon import HybridBlock
  from .proto.summary_pb2 import Summary
  from .proto.summary_pb2 import HistogramProto
  from .proto.summary_pb2 import SummaryMetadata
  from .proto.tensor_pb2 import TensorProto
  from .proto.tensor_shape_pb2 import TensorShapeProto
  from .proto.plugin_pr_curve_pb2 import PrCurvePluginData
  from .proto.node_def_pb2 import NodeDef
  from .proto.graph_pb2 import GraphDef
  from .proto.attr_value_pb2 import AttrValue
  from .proto.versions_pb2 import VersionDef
  from .utils import _make_numpy_array, _prepare_image
label_desc: Use image node_id 5 for calling a global function with example usage: image_summary(tag, image) and returns: Summary