code: def sigmoid_focal_loss(
      logit,
      label,
      normalizer=None,
      alpha=0.25,
      gamma=2.0,
      reduction="sum",
      name=None,
  ):
      if reduction not in ["sum", "mean", "none"]:
          raise ValueError(
              "The value of 'reduction' in sigmoid_focal_loss should be 'sum', 'mean' or"
              f" 'none', but received {reduction}, which is not allowed."
          )
  
      if normalizer is not None and normalizer.ndim > 1:
          raise ValueError(
              "Expected zero or one dimension of normalizer in sigmoid_focal_loss but"
              f" got {normalizer.ndim}."
          )
  
      if not isinstance(logit, ivy.Array):
          logit = ivy.array(logit)
  
      if not isinstance(label, ivy.Array):
          label = ivy.array(label)
  
      pred = ivy.sigmoid(logit)
      loss = -(
          label * alpha * ivy.pow((1 - pred), gamma) * ivy.log(pred)
          + (1 - label)
          * (1 - alpha)
          * ivy.pow(pred, gamma)
          * ivy.log(1 - pred)
      )
  
      if normalizer is not None:
          loss /= normalizer
  
      if reduction == "sum":
          return ivy.sum(loss)
      elif reduction == "mean":
          return ivy.mean(loss)
  
      return loss
  
imports: import ivy
  from ivy.func_wrapper import with_supported_dtypes
  import ivy.functional.frontends.paddle
  from ivy.utils.exceptions import handle_exceptions
  from ivy.functional.frontends.paddle.func_wrapper import inputs_to_ivy_arrays, to_ivy_arrays_and_back
label_desc: Use image node_id 15 for calling a global function with example usage: sigmoid_focal_loss(logit, label, normalizer, alpha, gamma, reduction, name) and returns: loss, ivy, ivy