code: def mean_squared_log_error(
      y_true: JaxArray,
      y_pred: JaxArray,
      keep_axis: Optional[Iterable[int]] = (0,),
  ) -> JaxArray:
      """Computes the mean squared logarithmic error between y_true and y_pred.
  
      Args:
          y_true: a tensor of shape (d0, .. dN-1).
          y_pred: a tensor of shape (d0, .. dN-1).
          keep_axis: a sequence of the dimensions to keep, use `None` to return a scalar value.
  
      Returns:
          tensor of shape (d_i, ..., for i in keep_axis) containing the mean squared error.
      """
  
      FUNC_NAME = "mean_squared_log_error"
      if y_true.shape != y_pred.shape:
          warnings.warn(
              " {} {} : arg1 {} and arg2 {}".format(
                  WARN_SHAPE_MISMATCH,
                  FUNC_NAME,
                  y_true.shape,
                  y_pred.shape,
              )
          )
      loss = (jn.log1p(y_true) - jn.log1p(y_pred)) ** 2
      axis = [i for i in range(loss.ndim) if i not in (keep_axis or ())]
      return loss.mean(axis)
  
file_path: objax/objax/functional/loss.py
imports: from typing import Union, Iterable, Optional
  import jax.numpy
  from objax.functional.core import logsumexp
  from objax.typing import JaxArray
  import warnings
label_desc: Use image node_id 6 for calling a global function with example usage: mean_squared_log_error(y_true, y_pred, keep_axis) and returns: loss