Ë
    cQêjd  ã                   óv   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  e j                  e
«      Z G d„ de«      Zy)é    N)ÚAttentionMask)ÚFusionConformerAttention)ÚFusionOptions)ÚBertOnnxModelc                   óF   ‡ — e Zd Zˆ fd„Zddedz  defˆ fd„Zd„ Zd„ Zˆ xZ	S )	ÚConformerOnnxModelc                 óª   •— t         ‰| �  |||«       t        | «      | _        t	        | | j
                  | j                  | j                  «      | _        y ©N)ÚsuperÚ__init__r   Úattention_maskr   Úhidden_sizeÚ	num_headsÚattention_fusion)ÚselfÚmodelr   r   Ú	__class__s       €úr/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/onnxruntime/transformers/onnx_model_conformer.pyr   zConformerOnnxModel.__init__   sH   ø€ Ü‰Ñ˜ 	¨;Ô7Ü+¨DÓ1ˆÔÜ 8¸¸t×?OÑ?OÐQU×Q_ÑQ_Ðae×atÑatÓ uˆÕó    NÚoptionsÚadd_dynamic_axesc                 ó¢   •— |€dn|j                   | j                  _         |€dn|j                  | j                  _        t        ‰| �  ||«       y ©NF)Úuse_multi_head_attentionr   Ú!disable_multi_head_attention_biasr   Úoptimize)r   r   r   r   s      €r   r   zConformerOnnxModel.optimize   sM   ø€ ØBIÀ/¹ÐW^×WwÑWwˆ×ÑÔ6à�_‰E¨'×*SÑ*Sð 	×ÑÔ?ô 	‰Ñ˜Ð"2Õ3r   c                 ó8   — | j                   j                  «        y r
   )r   Úapply©r   s    r   Úfuse_attentionz!ConformerOnnxModel.fuse_attention   s   € Ø×Ñ×#Ñ#Õ%r   c                 ó$   — | j                  «        y r
   )Úadjust_reshape_and_expandr   s    r   Ú
preprocesszConformerOnnxModel.preprocess   s   € Ø×&Ñ&Õ(r   r   )
Ú__name__Ú
__module__Ú__qualname__r   r   Úboolr   r    r#   Ú__classcell__)r   s   @r   r   r      s+   ø„ ôvñ
4 °Ñ 4ð 4Ètõ 4ò&ö)r   r   )ÚloggingÚfusion_attentionr   Úfusion_conformer_attentionr   Úfusion_optionsr   Úonnx_model_bertr   Ú	getLoggerr$   Úloggerr   © r   r   ú<module>r1      s4   ðó
 å *Ý ?Ý (Ý )à	ˆ×	Ñ	˜8Ó	$€ô)˜õ )r   