code: def sigmoid_cost(
      logit: Union[jnp.ndarray, float],
      *,
      focal_loss: bool = False,
      focal_alpha: Optional[float] = None,
      focal_gamma: Optional[float] = None,
  ) -> Union[jnp.ndarray, float]:
      """Computes the classification cost.
  
      Relevant code:
      https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/matcher.py#L76
  
      Args:
        logit: Sigmoid classification logit(s).
        focal_loss: Whether to apply focal loss for classification cost.
        focal_alpha: Alpha scaling factor for focal loss.
        focal_gamma: Gamma scaling factor for focal loss.
  
      Returns:
        Classification cost.
      """
      neg_cost_class = -jax.nn.log_sigmoid(-logit)
      pos_cost_class = -jax.nn.log_sigmoid(logit)
      if focal_loss:
          neg_cost_class *= (1 - focal_alpha) * jax.nn.sigmoid(
              logit
          ) ** focal_gamma
          pos_cost_class *= (
              focal_alpha * jax.nn.sigmoid(-logit) ** focal_gamma
          )
      return pos_cost_class - neg_cost_class
  
imports: from typing import Optional, Union
  import jax
  import jax.numpy
  from scenic.model_lib.base_models import box_utils
label_desc: Use image node_id 1 for calling a global function with example usage: sigmoid_cost(logit) and returns: unknown