
    g                     >    d dl mZ d dlmZ d dlmZ  G d de      Zy)    )Fusion)helper)	OnnxModelc                   *     e Zd Zdef fdZd Z xZS )FusionGeluApproximationmodelc                 .    t         |   |dddgd       y )NFastGeluGeluBiasGeluGeluApproximation)super__init__)selfr   	__class__s     g/var/www/openai/venv/lib/python3.12/site-packages/onnxruntime/transformers/fusion_gelu_approximation.pyr   z FusionGeluApproximation.__init__   s    
VZ,@BUV    c           
      l   t        j                  d|j                  |j                  | j                  j                  d|j                  dz               }d|_        | j                  j                  |       | j                  j                  |       | j                  | j                  |j                  <   y )Nr
   _Approximation)inputsoutputsnamezcom.microsoft)r   	make_nodeinputoutputr   create_node_nameop_typedomainnodes_to_removeappendnodes_to_addthis_graph_namenode_name_to_graph_namer   )r   nodeinput_name_to_nodesoutput_name_to_nodenew_nodes        r   fusezFusionGeluApproximation.fuse   s    ##::KK,,ZHX9XY	
 *##D)  *6:6J6J$$X]]3r   )__name__
__module____qualname__r   r   r(   __classcell__)r   s   @r   r   r      s    Wi W
Kr   r   N)fusion_baser   onnxr   
onnx_modelr   r    r   r   <module>r1      s       Kf Kr   