    def __init__(
        self,
        normalized_shape,
        eps=1e-5,
        dtype="float16",
        **kwargs,
    ):
        """Standalone layernorm op.
        Applies Layer Normalization over a mini-batch of inputs as described in the
        paper Layer Normalization. The mean and standard-deviation are calculated
        over the last D dimensions, where D is the dimension of normalized_shape.
        Input shape: [M0, M1, ..., Mp, N1, N2, ..., ND]
        Normalized_shape: [N1, N2, ..., ND]
        Gamma/Beta, if not None, have the same shape as normalized_shape.
        """
        super().__init__()
        self.eps = eps
        self.dim = (
            normalized_shape
            if isinstance(normalized_shape, (tuple, list))
            else (normalized_shape,)
        )
        self.weight = Parameter(shape=self.dim, dtype=dtype)
        self.bias = Parameter(shape=self.dim, dtype=dtype)
        self.op = ops.layernorm()
Standalone layernorm op.
Applies Layer Normalization over a mini-batch of inputs as described in the
paper Layer Normalization. The mean and standard-deviation are calculated
over the last D dimensions, where D is the dimension of normalized_shape.
Input shape: [M0, M1, ..., Mp, N1, N2, ..., ND]
Normalized_shape: [N1, N2, ..., ND]
Gamma/Beta, if not None, have the same shape as normalized_shape.
python/aitemplate/frontend/nn/layer_norm.py