code: def _make_histogram(values, bins):
      """Converts values into a histogram proto using logic from
      https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/lib/histogram/histogram.cc
      """
      values = values.reshape(-1)
      counts, limits = np.histogram(values, bins=bins)
      limits = limits[1:]
  
      sum_sq = values.dot(values)
      return HistogramProto(
          min=values.min(),
          max=values.max(),
          num=len(values),
          sum=values.sum(),
          sum_squares=sum_sq,
          bucket_limit=limits,
          bucket=counts,
      )
  
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 4 for calling a global function with example usage: _make_histogram(values, bins) and returns: HistogramProto