o
    i                     @   sf   d dl Z d dlZd dlm  mZ dd ZdejfddZdd Z	d	d
 Z
dd Zdd Zdd ZdS )    Nc                 K   sl   | d| _| j| _tt| | _tt| | _tt| | _tt	| | _	tt
| | _
tt| | _| S )Ndevice)getr   forward_original_forwardtypes
MethodTypeexport_forwardexport_dummy_inputsexport_input_namesexport_output_namesexport_dynamic_axesexport_name)modelkwargs r   Y/home/ubuntu/.local/lib/python3.10/site-packages/funasr/models/emotion2vec/export_meta.pyexport_rebuild_model   s   r   xc                 C   s   t  A | jjr.t j|ddd}t j|dddd}|| t |d  }||jd d}| j	|d dddd	}|d
 }|W  d    S 1 sHw   Y  d S )N   T)dimkeepdimF)r   r   unbiasedgh㈵>r   )sourcepadding_maskmaskfeatures_onlyremove_extra_tokensr   )
torchno_gradcfg	normalizemeanvarsqrtviewshaper   )selfr   r"   r#   resr   r   r   r      s   

$r   c                 C   s   t ddfS )Nr   i>  )r   randnr'   r   r   r   r	   .   s   r	   c                 C      dgS )Ninputr   r*   r   r   r   r
   2      r
   c                 C   r+   )Noutputr   r*   r   r   r   r   6   r-   r   c                 C   s   dddddddS )N
batch_sizesequence_length)r   r   )r,   r.   r   r*   r   r   r   r   :   s
   r   c                 C   s   dS )Nemotion2vecr   r*   r   r   r   r   D   s   r   )r   r   torch.nn.functionalnn
functionalFr   Tensorr   r	   r
   r   r   r   r   r   r   r   <module>   s   
