docs: def visualize_saliency_with_losses(input_tensor, losses, seed_input, wrt_tensor=None, grad_modifier='absolute', keepdims=False):
      """Generates an attention heatmap over the `seed_input` by using positive gradients of `input_tensor`
      with respect to weighted `losses`.
  
      This function is intended for advanced use cases where a custom loss is desired. For common use cases,
      refer to `visualize_class_saliency` or `visualize_regression_saliency`.
  
      For a full description of saliency, see the paper:
      [Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps]
      (https://arxiv.org/pdf/1312.6034v2.pdf)
  
      Args:
          input_tensor: An input tensor of shape: `(samples, channels, image_dims...)` if `image_data_format=
              channels_first` or `(samples, image_dims..., channels)` if `image_data_format=channels_last`.
          losses: List of ([Loss](vis.losses#Loss), weight) tuples.
          seed_input: The model input for which activation map needs to be visualized.
          wrt_tensor: Short for, with respect to. The gradients of losses are computed with respect to this tensor.
              When None, this is assumed to be the same as `input_tensor` (Default value: None)
          grad_modifier: gradient modifier to use. See [grad_modifiers](vis.grad_modifiers.md). By default `absolute`
              value of gradients are used. To visualize positive or negative gradients, use `relu` and `negate`
              respectively. (Default value = 'absolute')
          keepdims: A boolean, whether to keep the dimensions or not.
              If keepdims is False, the channels axis is deleted.
              If keepdims is True, the grad with same shape as input_tensor is returned. (Default value: False)
  
      Returns:
          The normalized gradients of `seed_input` with respect to weighted `losses`.
      """
      opt = Optimizer(input_tensor, losses, wrt_tensor=wrt_tensor, norm_grads=False)
      grads = opt.minimize(seed_input=seed_input, max_iter=1, grad_modifier=grad_modifier, verbose=False)[1]
  
      if not keepdims:
          channel_idx = 1 if K.image_data_format() == 'channels_first' else -1
          grads = np.max(grads, axis=channel_idx)
      return utils.normalize(grads)[0]