def __init__(self, num_features, eps=1e-5, momentum=0.1, affine=True,
                 track_running_stats=True, **kwargs):
        """
        Initializes the ComplexBatchNorm2d layer.

        Args:
            num_features (int): Number of features (channels) for the input.
            eps (float, optional): A value added to the denominator for numerical stability. Default is 1e-5.
            momentum (float, optional): Momentum for the running mean and variance. Default is 0.1.
            affine (bool, optional): If True, this layer has learnable parameters. Default is True.
            track_running_stats (bool, optional): If True, track the running mean and variance. Default is True.
        """
        super().__init__()
        # Initialize batch normalization layers for real and imaginary parts
        self.bn_re = nn.BatchNorm2d(num_features=num_features, momentum=momentum, affine=affine, eps=eps, track_running_stats=track_running_stats, **kwargs)
        self.bn_im = nn.BatchNorm2d(num_features=num_features, momentum=momentum, affine=affine, eps=eps, track_running_stats=track_running_stats, **kwargs)

        Initializes the ComplexBatchNorm2d layer.

        Args:
            num_features (int): Number of features (channels) for the input.
            eps (float, optional): A value added to the denominator for numerical stability. Default is 1e-5.
            momentum (float, optional): Momentum for the running mean and variance. Default is 0.1.
            affine (bool, optional): If True, this layer has learnable parameters. Default is True.
            track_running_stats (bool, optional): If True, track the running mean and variance. Default is True.
        
clearvoice/clearvoice/models/frcrn_se/complex_nn.py