code: def overlay(array1, array2, alpha=0.5):
      """Overlays `array1` onto `array2` with `alpha` blending.
  
      Args:
          array1: The first numpy array.
          array2: The second numpy array.
          alpha: The alpha value of `array1` as overlayed onto `array2`. This value needs to be between [0, 1],
              with 0 being `array2` only to 1 being `array1` only (Default value = 0.5).
  
      Returns:
          The `array1`, overlayed with `array2` using `alpha` blending.
      """
      if alpha < 0.0 or alpha > 1.0:
          raise ValueError("`alpha` needs to be between [0, 1]")
      if array1.shape != array2.shape:
          raise ValueError(
              "`array1` and `array2` must have the same shapes"
          )
  
      return (array1 * alpha + array2 * (1.0 - alpha)).astype(
          array1.dtype
      )
  
file_path: keras-vis/vis/visualization/__init__.py
imports: from __future__ import absolute_import
  from .activation_maximization import visualize_activation_with_losses
  from .activation_maximization import visualize_activation
  from .saliency import visualize_saliency_with_losses
  from .saliency import visualize_saliency
  from .saliency import visualize_cam_with_losses
  from .saliency import visualize_cam
  from keras import backend
label_desc: Use image node_id 2 for calling a global function with example usage: overlay(array1, array2, alpha) and returns: unknown