code: def report_html_image(logger, iteration=0):
      # type: (Logger, int) -> ()
      """
      reporting bokeh image (html) to debug samples section
      :param logger: The task.logger to use for sending the plots
      :param iteration: The iteration number of the current reports
      """
  
      # First html
      samples = 500
      x = np.linspace(0, 10, samples)
      y = np.linspace(0, 10, samples)
      xx, yy = np.meshgrid(x, y)
      d = np.sin(xx) * np.cos(yy)
      p = figure(
          tooltips=[("x", "$x"), ("y", "$y"), ("value", "@image")]
      )
      p.x_range.range_padding = p.y_range.range_padding = 0
      # must give a vector of image data for image parameter
      p.image(
          image=[d],
          x=0,
          y=0,
          dw=10,
          dh=10,
          palette="Spectral11",
          level="image",
      )
      p.grid.grid_line_width = 0.5
      output_file("image.html", title="image.py example")
      save(p)
      logger.report_media(
          "html",
          "Spectral_html",
          iteration=iteration,
          local_path="image.html",
      )
  
file_path: clearml/examples/reporting/html_reporting.py
imports: import math
  import numpy
  from bokeh.models import ColumnDataSource, GraphRenderer, Ellipse, StaticLayoutProvider
  from bokeh.palettes import Spectral5, Spectral8
  from bokeh.plotting import figure, output_file, save
  from bokeh.sampledata.autompg import autompg_clean
  from bokeh.sampledata.periodic_table import elements
  from bokeh.transform import dodge, factor_cmap
  from clearml import Task, Logger
label_desc: Use image node_id 5 for calling a global function with example usage: report_html_image(logger, iteration) without return types