§
    kŠtj¿  ã                   ót   — 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dS )	é    )Ú	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 )ÚVaeOnnxModelr   ÚmodelÚ	num_headsÚhidden_sizec                 óŠ   •— |dk    r|dk    s|dk    r	||z  dk    sJ ‚t          ¦   «                              |||¬¦  «         d S )Nr   )r   r   )ÚsuperÚ__init__)Úselfr
   r   r   Ú	__class__s       €úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/onnxruntime/transformers/onnx_model_vae.pyr   zVaeOnnxModel.__init__   sZ   ø€ Ø˜Q’� ;°!Ò#3Ð#3¸ÀQº¸È;ÐYbÑKbÐfgÒKgÐKgÐKgÐhÝ‰Œ×Ò˜¨)ÀÐÑMÔMÐMÐMÐMó    NÚoptionsc                 ód   — t          | | j        | j        ¦  «        }|                     ¦   «          d S ©N)r   r   r   Úapply)r   r   Úself_attention_fusions      r   Úfuse_multi_head_attentionz&VaeOnnxModel.fuse_multi_head_attention   s1   € å 2°4¸Ô9IÈ4Ì>Ñ ZÔ ZÐØ×#Ò#Ñ%Ô%Ð%Ð%Ð%r   c                 ó¤   — i }g d¢}|D ])}|                       |¦  «        }t          |¦  «        ||<   Œ*t                               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   so   € ð ˆð
ð 
ð 
ˆð ð 	&ð 	&ˆBØ×-Ò-¨bÑ1Ô1ˆEÝ˜u™:œ:ˆH�R‰LˆLå�ŠÐ5¨8Ð5Ð5Ñ6Ô6Ð6Øˆr   )r   r   r   )
Ú__name__Ú
__module__Ú__qualname__r   Úintr   r   r   r'   Ú__classcell__)r   s   @r   r	   r	      s•   ø€ € € € € ðNð N˜jð N°Sð NÈ3ð Nð Nð Nð Nð Nð Nð&ð &°ÀÑ1Eð &ð &ð &ð &ð
ð ð ð ð ð ð r   r	   N)Úloggingr   Úfusion_attention_vaer   Úfusion_optionsr   Úonnxr   Úonnx_model_unetr   r(   r!   r	   © r   r   ú<module>r3      s¤   ðð Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )à	ˆ�8Ñ	Ô	€ðð ð ð ð �=ñ ô ð ð ð r   