code: def group_norm(
      x: torch.Tensor,
      num_groups: int = 1,
      /,
      *,
      offset: Optional[torch.Tensor] = None,
      scale: Optional[torch.Tensor] = None,
      eps: Optional[float] = 1e-5,
      data_format: Optional[str] = "NSC",
      out: Optional[torch.Tensor] = None,
  ):
      xdims = x.ndim
      if data_format == "NSC":
          x = torch.permute(
              x, dims=(0, xdims - 1, *range(1, xdims - 1))
          )
      xnormalized = torch.nn.functional.group_norm(
          x, num_groups, weight=scale, bias=offset, eps=eps
      )
  
      if data_format == "NSC":
          xnormalized = torch.permute(
              xnormalized, dims=(0, *range(2, xdims), 1)
          )
  
      return xnormalized
  
file_path: ivy/ivy/functional/backends/torch/experimental/norms.py
imports: import torch
  from typing import Literal, Optional, Tuple
  from ivy.func_wrapper import with_supported_dtypes, with_unsupported_dtypes
  from ..None import backend_version
label_desc: Use image node_id 6 for calling a global function with example usage: group_norm() and returns: xnormalized