class_docstr: Applies a `Instance Normalization <https://arxiv.org/abs/1607.08022>`_ over a 2D or 3D input tensor
  
  Args:
      num_features (int): :math:`C` from an expected input of size :math:`(N, C)` or :math:`(N, C, L)`
      eps (Optional, float): Value added to the denominator for numerical stability. Default: 1e-5
      momentum (Optional, float): Value used for the running_mean and running_var computation. Default: 0.1
      affine (bool): If ``True``, use learnable affine parameters. Default: ``True``
      track_running_stats: If ``True``, tracks running mean and variance. Default: ``True``
  
  Shape:
      - Input: :math:`(N, C)` or :math:`(N, C, L)` where :math:`N` is the batch size, :math:`C` is the number
      of input channels,  and :math:`L` is the sequence length
  - Output: same shape as the input
code: def __init__(
      self,
      num_features: int,
      eps: Optional[float] = 1e-5,
      momentum: Optional[float] = 0.1,
      affine: Optional[bool] = True,
      track_running_stats: Optional[bool] = True,
      *args,
      **kwargs,
  ) -> None:
      super().__init__(
          num_features=num_features,
          eps=eps,
          momentum=momentum,
          affine=affine,
          track_running_stats=track_running_stats,
      )
  
file_path: ml-cvnets/cvnets/layers/normalization/instance_norm.py
imports: from typing import Optional
  from torch import Tensor, nn
  from cvnets.layers.normalization import register_norm_fn
label_desc: Use image node_id 1 to create a new InstanceNorm1d object from inherited base classes: nn with example: obj = InstanceNorm1d(num_features, eps, momentum, affine, track_running_stats)