
    zIg                     J    d dl Z ddlmZmZmZmZmZ ddlmZ  G d de      Z	y)    N   )TENSOR_NAME_QUANT_SUFFIXQuantizedValueQuantizedValueTypeattribute_to_kwargquantize_nparray   )QuantOperatorBasec                   (     e Zd Z fdZ fdZ xZS )QPadc                 &    t         |   ||       y )N)super__init__)selfonnx_quantizer	onnx_node	__class__s      c/var/www/html/answerous/venv/lib/python3.12/site-packages/onnxruntime/quantization/operators/pad.pyr   zQPad.__init__   s    3    c                 	   | j                   }|j                  dk(  sJ | j                  j                  dk  s%|j                  d   | j                  j
                  vrt        |           y | j                  j
                  |j                  d      }i }|j                  D ]  }t        |      }|j                  |         d|vs	|d   dk(  r-t        |j                        dkD  r|j                  d   dk7  r| j                  j                  j                  |j                        }| j                  j                  j                  |j                        }||t        |           y | j                  j                  j                  |j                  d         }|Xt         j"                  j%                  |      }	|	j&                  dk(  r|	j)                         n|	d   }
t         j"                  j%                  |      }|j&                  dk(  r|j)                         n|d   }t         j"                  j%                  |      }t+        | j                  j,                  |||
      }|j                  d   t.        z   }t         j"                  j1                  ||      }| j                  j                  j3                  |       | j                  j                  j5                  |       ||j                  d<   n| j                  j7                  |d| j                  j,                  |j                  |j                  |j8                        }| j                  j:                  j=                  |       |d   j>                  d   |j                  d<   nkt        |j                        dk(  r&|j                  jA                  |j                         n-|j                  d   dk(  sJ |j                  |j                  d<   tC        |j>                  d   |j>                  d   t.        z   |j                  |j                  tD        jF                        }|| j                  j
                  |j>                  d   <   |jH                  |j                  d<   |jH                  |j>                  d<   | j                  xj:                  |gz  c_        y )	NPad   r   modes   constantr    )initial_type)%nodeop_type	quantizeropset_versioninputquantized_value_mapr   quantize	attributer   updatelenmodelget_initializerzp_name
scale_nameonnxnumpy_helperto_arrayndimitemr   activation_qTyper   
from_arrayremove_initializeradd_initializer_get_quantize_input_nodes	data_type	new_nodesextendoutputappendr   r   Inputq_name)r   r   quantized_input_valuekwargsr#   kv	zp_tensorscale_tensorpadding_constant_initializerzp_arrayzp_valuescale_arrayscale_valuepadding_constant_array quantized_padding_constant_arrayquantized_padding_constant_name&quantized_padding_constant_initializerpad_value_qnodesquantized_output_valuer   s                      r   r"   zQPad.quantize   s   yy||u$$$ NN((2-4::a=HjHj3jG $ B B4::a= Q 	I#I.BMM"	 6&>[#@4::"tzz!}': NN00@@AVA^A^_	#~~33CCDYDdDde$(<G$&/3~~/C/C/S/STXT^T^_`Ta/b,/;#0099)DH2:--12Dx}}(ST+H"&"3"3"<"<\"JK8C8H8HA8M+"2"2"4S^_`SaK-1->->-G-GHd-e*7G77.# 	84 7;jjmF^6^3=A=N=N=Y=Y87>:
 NN((;;<XYNN((889_`$CDJJqM (,~~'O'O77-88-55%1%;%; (P ($ NN,,334DE$4Q$7$>$>q$ADJJqM tzz?a'JJ%%&;&C&CD  ::a=B...$9$A$ADJJqM "0KKNKKN55!,,!))$$"
 >T**4;;q>:-44

1/66A  TF* r   )__name__
__module____qualname__r   r"   __classcell__)r   s   @r   r   r      s    4S+ S+r   r   )
r*   quant_utilsr   r   r   r   r   base_operatorr
   r    r   r   <module>rR      s&      -W+ W+r   