Ë
    �…j¿  ã                   óf   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	  ee
«      Z G d„ de	«      Zy)	é    )Ú	getLogger)ÚFusionAttentionVae)ÚFusionOptions)Ú
ModelProto)ÚUnetOnnxModelc                   óH   ‡ — e Zd Zd	dededefˆ fd„Zd
dedz  fd„Zd„ Zˆ xZ	S )ÚVaeOnnxModelÚmodelÚ	num_headsÚhidden_sizec                 ó\   •— |dk(  r|dk(  s|dkD  r||z  dk(  sJ ‚t         ‰| �  |||¬«       y )Nr   )r   r   )ÚsuperÚ__init__)Úselfr
   r   r   Ú	__class__s       €úh/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/onnxruntime/transformers/onnx_model_vae.pyr   zVaeOnnxModel.__init__   s?   ø€ Ø˜Q’ ;°!Ò#3¸ÀQºÈ;ÐYbÑKbÐfgÒKgÐhÐhÜ‰Ñ˜¨)ÀÐÕMó    NÚoptionsc                 óf   — t        | | j                  | j                  «      }|j                  «        y ©N)r   r   r   Úapply)r   r   Úself_attention_fusions      r   Úfuse_multi_head_attentionz&VaeOnnxModel.fuse_multi_head_attention   s'   € ä 2°4¸×9IÑ9IÈ4Ï>É>Ó ZÐØ×#Ñ#Õ%r   c                 óŽ   — i }g d¢}|D ]!  }| j                  |«      }t        |«      ||<   Œ# t        j                  d|› �«       |S )z8
        Returns node count of fused operators.
        )Ú	AttentionÚ	GroupNormÚSkipGroupNormÚNhwcConvzOptimized operators:)Úget_nodes_by_op_typeÚlenÚloggerÚinfo)r   Úop_countÚopsÚopÚnodess        r   Úget_fused_operator_statisticsz*VaeOnnxModel.get_fused_operator_statistics   sY   € ð ˆò
ˆð ò 	&ˆBØ×-Ñ-¨bÓ1ˆEÜ˜u›:ˆH�RŠLð	&ô 	�‰Ð*¨8¨*Ð5Ô6Øˆr   )r   r   r   )
Ú__name__Ú
__module__Ú__qualname__r   Úintr   r   r   r'   Ú__classcell__)r   s   @r   r	   r	      s7   ø„ ñN˜jð N°Sð NÈ3õ Nñ&°ÀÑ1Eó &ö
r   r	   N)Úloggingr   Úfusion_attention_vaer   Úfusion_optionsr   Úonnxr   Úonnx_model_unetr   r(   r!   r	   © r   r   ú<module>r3      s,   ðõ å 3Ý (Ý Ý )á	�8Ó	€ô�=õ r   