code: def selu(
      x: np.ndarray, /, *, out: Optional[np.ndarray] = None
  ) -> np.ndarray:
      alpha = 1.6732632423543772848170429916717
      scale = 1.0507009873554804934193349852946
      ret = (scale * np.where(x > 0, x, alpha * np.expm1(x))).astype(
          x.dtype
      )
      if ivy.exists(out):
          return ivy.inplace_update(out, ret).astype(x.dtype)
      return ret
  
file_path: ivy/ivy/functional/backends/numpy/experimental/activations.py
imports: from typing import Optional, Union, Literal
  import numpy
  import ivy
  from ivy.functional.backends.numpy.helpers import _scalar_output_to_0d_array
  from ivy.func_wrapper import with_unsupported_dtypes
  from .None import backend_version
label_desc: Use image node_id 5 for calling a global function with example usage: selu() and returns: ret, ivy