
    Pi                     L    d dl mZ d dlZd dlmZ  G d dej                  ZdS )    )AnyN)nnc                   T     e Zd ZdZdededdf fdZdej        dej        fdZ xZ	S )	Fp32LayerNormzZ
    Wrapper around :class:`~torch.nn.LayerNorm` to support mixed-precision training.
    argskwargsreturnNc                 :     t                      j        |i | d S )N)super__init__)selfr   r   	__class__s      p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torchtune/modules/layer_norm.pyr   zFp32LayerNorm.__init__   s%    $)&)))))    xc                 *   t           j                            |                                | j        | j        | j                                        nd| j        | j                                        nd| j                  }|                    |          S )z
        Args:
            x (torch.Tensor): Input tensor.

        Returns:
            torch.Tensor: The normalized output tensor having the same shape as ``x``.
        N)	r   
functional
layer_normfloatnormalized_shapeweightbiasepstype_as)r   r   outputs      r   forwardzFp32LayerNorm.forward   s}     ))GGII!#';#:DK!%!6DIOODH
 
 ~~a   r   )
__name__
__module____qualname____doc__r   r   torchTensorr   __classcell__)r   s   @r   r   r      s         *c *S *T * * * * * *! !%, ! ! ! ! ! ! ! !r   r   )typingr   r!   r   	LayerNormr    r   r   <module>r'      sj                ! ! ! ! !BL ! ! ! ! !r   