
    9i                     B    S SK r S SKJr   " S S\R                  5      rg)    Nc                   2   ^  \ rS rSrSU 4S jjrS rSrU =r$ )AFF   c                 R  > [         [        U ]  5         [        X-  5      n[        R
                  " [        R                  " US-  USSSS9[        R                  " U5      [        R                  " SS9[        R                  " X1SSSS9[        R                  " U5      5      U l	        g )N      r   )kernel_sizestridepaddingT)inplace)
superr   __init__intnn
SequentialConv2dBatchNorm2dSiLU	local_att)selfchannelsrinter_channels	__class__s       a/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/audio/sv/fusion.pyr   AFF.__init__   s    c4!#X]+II1 NN>*GGD!IIa1NNN8$
    c                     [         R                  " X4SS9nU R                  U5      nS[         R                  " U5      -   n[         R                  " X5      [         R                  " USU-
  5      -   nU$ )Nr   )dimg      ?g       @)torchcatr   tanhmul)r   xds_yxax_attxos         r   forwardAFF.forward   s\    YYya(r"ejj''YYq 599T3;#??	r   )r   )@      )__name__
__module____qualname____firstlineno__r   r)   __static_attributes____classcell__)r   s   @r   r   r      s    
$ r   r   )r    torch.nnr   Moduler    r   r   <module>r6      s     ")) r   