ó
    ¼èØhd  ã                   óv   • S SK r S SKJr  S SKJr  S SKJr  S SKJr  \ R                  " \
5      r " S S\5      rg)é    N)ÚAttentionMask)ÚFusionConformerAttention)ÚFusionOptions)ÚBertOnnxModelc                   óV   ^ • \ rS rSrU 4S jrS
S\S-  S\4U 4S jjjrS rS r	S	r
U =r$ )ÚConformerOnnxModelé   c                 ó¦   >• [         TU ]  XU5        [        U 5      U l        [	        X R
                  U R                  U R                  5      U l        g ©N)ÚsuperÚ__init__r   Úattention_maskr   Úhidden_sizeÚ	num_headsÚattention_fusion)ÚselfÚmodelr   r   Ú	__class__s       €Úg/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/transformers/onnx_model_conformer.pyr   ÚConformerOnnxModel.__init__   sD   ø€ Ü‰Ñ˜¨;Ô7Ü+¨DÓ1ˆÔÜ 8¸×?OÑ?OÐQU×Q_ÑQ_Ðae×atÑatÓ uˆÕó    NÚoptionsÚadd_dynamic_axesc                 ó¤   >• Uc  SOUR                   U R                  l         Uc  SOUR                  U R                  l        [        TU ]  X5        g ©NF)Úuse_multi_head_attentionr   Ú!disable_multi_head_attention_biasr   Úoptimize)r   r   r   r   s      €r   r   ÚConformerOnnxModel.optimize   sJ   ø€ ØBIÁ/¹ÐW^×WwÑWwˆ×ÑÔ6à‘_‰E¨'×*SÑ*Sð 	×ÑÔ?ô 	‰Ñ˜Õ3r   c                 ó8   • U R                   R                  5         g r   )r   Úapply©r   s    r   Úfuse_attentionÚ!ConformerOnnxModel.fuse_attention   s   € Ø×Ñ×#Ñ#Õ%r   c                 ó$   • U R                  5         g r   )Úadjust_reshape_and_expandr"   s    r   Ú
preprocessÚConformerOnnxModel.preprocess   s   € Ø×&Ñ&Õ(r   )r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Úboolr   r#   r'   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s5   ø† õvñ
4 °Ñ 4ð 4Èt÷ 4ð 4ò&÷)ð )r   r   )ÚloggingÚfusion_attentionr   Úfusion_conformer_attentionr   Úfusion_optionsr   Úonnx_model_bertr   Ú	getLoggerr)   Úloggerr   © r   r   Ú<module>r8      s2   ðó
 å *Ý ?Ý (Ý )à	×	Ò	˜8Ó	$€ô)˜õ )r   