§
    Ë²ÅjD,  ã                   ó|  — d dl Z d dlZd dlmZmZ d dlmZmZ de	de
fd„Zdej        fd„Zdej        fd	„Zdej        fd
„Zdej        fd„Z ej        ddddd¦  «        dej        fd„¦   «         Zdej        fd„Z ej        ddddddddd¦	  «	        dej        fd„¦   «         Z ej        ddddddddd¦	  «	        dej        fd„¦   «         Z ej        dddd¦  «        dej        fd„¦   «         Z ej        d¦  «        dej        fd„¦   «         Z ej        dddd¦  «        dej        fd„¦   «         Z ej        d¦  «        dej        fd„¦   «         Z ej        dddddddd¦  «        dej        fd„¦   «         Z	 	 	 d"dej        fd„Z ej        dddddd¦  «        dej        fd„¦   «         Z ej        ddddddd¦  «        	 d#dej        fd„¦   «         Zdej        fd„Z ej        ddddd¦  «        dej        fd„¦   «         Zd$dej        fd „Z  ej        d¦  «        dej        fd!„¦   «         Z!dS )%é    N)Úsymbolic_helperÚsymbolic_opset9)Ú	jit_utilsÚregistrationÚdomainÚversionc                 óz  — t          j        d¦  «        }t          j        |¦  «        }h d£}|D ]‹\  }}| › d|› �}t          j        |¦  «        rkt
          j                             ||¦  «        sK||v r&t
          j                             d|› �||d¬¦  «         t
          j                             |||¦  «         ŒŒd S )Nztorch.onnx.symbolic_caffe2>   ÚcatÚreluÚsliceÚreshapeÚsigmoidÚ
avg_pool2dÚ
dequantizeÚ
max_pool2dÚupsample_nearest2dÚquantize_per_tensorÚ_empty_affine_quantizedz::zaten::T)Úcustom)	Ú	importlibÚimport_moduleÚinspectÚ
getmembersÚ
isfunctionr   ÚregistryÚis_registered_opÚregister)r   r   ÚmoduleÚquant_version_opsÚ
aten_q_opsÚopÚfuncÚnames           úKC:\Projects\Historical\venv\Lib\site-packages\torch/onnx/symbolic_caffe2.pyÚregister_quantized_opsr%   
   sù   € åÔ$Ð%AÑBÔB€FÝÔ*¨6Ñ2Ô2Ððð ð €Jð &ð 
@ð 
@‰ˆˆDØÐ Ð ˜BÐ Ð ˆÝÔ˜dÑ#Ô#ð 	@­LÔ,A×,RÒ,RØ�'ñ-
ô -
ð 	@ð �ZÐÐåÔ%×.Ò.Ø!˜R�M�M 7¨D¸ð /ñ ô ð õ Ô!×*Ò*¨4°¸$Ñ?Ô?Ð?øð
@ð 
@ó    Úgc                 ó  — |t          j        |                     ¦   «         d¦  «        t          j        |                     ¦   «         d¦  «        dœ} | j        d|fi |¤Ž}t           j                             |¦  «         |S )NÚY_scaleÚY_zero_point)Úaxes_iÚ	Y_scale_fÚY_zero_point_iz_caffe2::Int8Transpose)r   Ú	_node_getÚnoder!   Ú_quantized_opsÚadd)r'   ÚinputÚaxesÚ
quant_argsÚoutputs        r$   Ú_permute_helperr6   (   s{   € àÝ$Ô.¨u¯zªz©|¬|¸YÑGÔGÝ)Ô3°E·J²J±L´LÀ.ÑQÔQðð €Jð
 ˆQŒTÐ*¨EÐ@Ð@°ZÐ@Ð@€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 ó,   — g d¢}t          | ||¦  «        S )N)r   é   é   é   ©r6   ©r'   r2   r3   s      r$   Ú	nchw2nhwcr=   3   ó   € Øˆ<ˆ<€DÝ˜1˜e TÑ*Ô*Ð*r&   c                 ó,   — g d¢}t          | ||¦  «        S )N)r   r9   r:   r8   r;   r<   s      r$   Ú	nhwc2nchwr@   8   r>   r&   c                 ór   — |                       d||¦  «        }t          j                             |¦  «         |S ©Nz_caffe2::WeightPrepack©r!   r   r0   r1   )r'   ÚweightÚbiasr5   s       r$   Úlinear_prepackrF   =   s6   € ð �TŠTÐ*¨F°DÑ9Ô9€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   ÚvÚfÚic                 óp   — ||dœ} | j         d|||fi |¤Ž}t          j                             |¦  «         |S )N©r,   r-   z_caffe2::Int8FCrC   )r'   r2   rD   rE   ÚscaleÚ
zero_pointÚkwargsr5   s           r$   ÚlinearrO   F   sT   € ð Ø$ðð €Fð ˆQŒTÐ# U¨F°DÐCÐC¸FÐCÐC€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 ót   — |                       d|||¦  «        }t          j                             |¦  «         |S rB   rC   )	r'   r2   rD   rE   ÚstrideÚpaddingÚdilationÚgroupsr5   s	            r$   Úconv_prepackrU   Q   s8   € ð �TŠTÐ*¨E°6¸4Ñ@Ô@€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   Úisc
           	      óÆ   — |                      ¦   «         d         dd…         }
|||z   |||
d||	dœ} | j        d|||fi |¤Ž}t          j                             |¦  «         |S )NÚshaper:   r9   ÚNHWC©Ú	strides_iÚpads_iÚdilations_iÚgroup_iÚ	kernels_iÚorder_sr,   r-   z_caffe2::Int8Conv©r/   r!   r   r0   r1   ©r'   r2   rD   rE   rQ   rR   rS   rT   rL   rM   Úkernel_sizerN   r5   s                r$   Úconv2drd   \   s†   € ð —+’+‘-”- Ô(¨¨1¨Ô-€KàØ˜GÑ#ØØØ ØØØ$ð	ð 	€Fð ˆQŒTÐ% u¨f°dÐEÐE¸fÐEÐE€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c
           	      óÆ   — |                      ¦   «         d         dd…         }
|||z   |||
d||	dœ} | j        d|||fi |¤Ž}t          j                             |¦  «         |S )NrX   r:   r9   rY   rZ   z_caffe2::Int8ConvRelura   rb   s                r$   Úconv2d_relurf   y   s†   € ð —+’+‘-”- Ô(¨¨1¨Ô-€KàØ˜GÑ#ØØØ ØØØ$ð	ð 	€Fð ˆQŒTÐ)¨5°&¸$ÐIÐIÀ&ÐIÐI€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 ón   — ||dœ} | j         d||fi |¤Ž}t          j                             |¦  «         |S )NrK   z_caffe2::Int8AddrC   )r'   Úinput_aÚinput_brL   rM   rN   r5   s          r$   r1   r1   –   sR   € ð Ø$ðð €Fð ˆQŒTÐ$ g¨wÐAÐA¸&ÐAÐA€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 óF  — |t           j        vrt          j        | |¦  «        S t          j        |                     ¦   «         d¦  «        t          j        |                     ¦   «         d¦  «        dœ} | j        d|fi |¤Ž}t           j                             |¦  «         |S )Nr)   r*   rK   z_caffe2::Int8Relu)r   r0   Úopset9r   r.   r/   r!   r1   )r'   r2   rN   r5   s       r$   r   r   ¡   s˜   € à•OÔ2Ð2Ð2ÝŒ{˜1˜eÑ$Ô$Ð$å$Ô.¨u¯zªz©|¬|¸YÑGÔGÝ)Ô3°E·J²J±L´LÀ.ÑQÔQðð €Fð ˆQŒTÐ% uÐ7Ð7°Ð7Ð7€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   Útc                 ól   — ||dœ} | j         d|fi |¤Ž}t          j                             |¦  «         |S )NrK   z_caffe2::Int8QuantizerC   )r'   r2   rL   rM   ÚdtyperN   r5   s          r$   r   r   ®   sP   € ð Ø$ðð €Fð ˆQŒTÐ)¨5Ð;Ð;°FÐ;Ð;€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 ó.   — |                       d|¦  «        S )Nz_caffe2::Int8Dequantize)r!   )r'   r2   s     r$   r   r   ¹   s   € à�4Š4Ð)¨5Ñ1Ô1Ð1r&   c	                 ó   — |S ©N© )	r'   r2   rX   rL   rM   rn   Ú
pin_memoryÚmemory_formatÚlayouts	            r$   r   r   ¾   s	   € ð €Lr&   c                 ó¶  — |t           j        vrt          j        | |||¦  «        S t          j        |d¦  «        }|t          j        |                     ¦   «         d¦  «        t          j        |                     ¦   «         d¦  «        dœ}t          | |¦  «        } | j        d|fi |¤Ž}t          | |¦  «        }t           j         
                    |¦  «         |S )NrV   r)   r*   )Úoutput_size_ir,   r-   z_caffe2::Int8ResizeNearest)r   r0   rk   r   Ú
_parse_argr.   r/   r=   r!   r@   r1   )r'   r2   Úoutput_sizeÚalign_cornersÚscales_hÚscales_wrN   r5   s           r$   r   r   Í   sÒ   € ð •OÔ2Ð2Ð2ÝÔ(¨¨E°;ÀÑNÔNÐNå!Ô,¨[¸$Ñ?Ô?€Kà$Ý$Ô.¨u¯zªz©|¬|¸YÑGÔGÝ)Ô3°E·J²J±L´LÀ.ÑQÔQðð €Fõ
 �a˜ÑÔ€EØˆQŒTÐ.°Ð@Ð@¸Ð@Ð@€FÝ�q˜&Ñ!Ô!€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c           	      óª  — |t           j        vrt          j        | ||||||¦  «        S |||z   |d         dt          j        |                     ¦   «         d¦  «        t          j        |                     ¦   «         d¦  «        dœ}t          | |¦  «        } | j        d|fi |¤Ž}t          | |¦  «        }t           j         	                    |¦  «         |S )Nr   rY   r)   r*   ©r[   r\   Úkernel_ir`   r,   r-   z_caffe2::Int8MaxPool)
r   r0   rk   r   r.   r/   r=   r!   r@   r1   )	r'   r2   rc   rQ   rR   rS   Ú	ceil_moderN   r5   s	            r$   r   r   å   sá   € ð •OÔ2Ð2Ð2ÝÔ Øˆu�k 6¨7°H¸iñ
ô 
ð 	
ð Ø˜GÑ#Ø ”NØÝ$Ô.¨u¯zªz©|¬|¸YÑGÔGÝ)Ô3°E·J²J±L´LÀ.ÑQÔQðð €Fõ �a˜ÑÔ€EØˆQŒTÐ(¨%Ð:Ð:°6Ð:Ð:€FÝ�q˜&Ñ!Ô!€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   Únonec           
      ó¬  — |t           j        vrt          j        | |||||||¦  «        S |||z   |d         dt          j        |                     ¦   «         d¦  «        t          j        |                     ¦   «         d¦  «        dœ}t          | |¦  «        } | j        d|fi |¤Ž}	t          | |	¦  «        }	t           j         	                    |	¦  «         |	S )Nr   rY   r)   r*   r~   z_caffe2::Int8AveragePool)
r   r0   rk   r   r.   r/   r=   r!   r@   r1   )
r'   r2   rc   rQ   rR   r€   Úcount_include_padÚdivisor_overriderN   r5   s
             r$   r   r     sê   € ð •OÔ2Ð2Ð2ÝÔ ØØØØØØØØñ	
ô 	
ð 		
ð Ø˜GÑ#Ø ”NØÝ$Ô.¨u¯zªz©|¬|¸YÑGÔGÝ)Ô3°E·J²J±L´LÀ.ÑQÔQðð €Fõ �a˜ÑÔ€EØˆQŒTÐ,¨eÐ>Ð>°vÐ>Ð>€FÝ�q˜&Ñ!Ô!€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 óJ  — |t           j        vrt          j        | ||¦  «        S t          j        |                     ¦   «         d¦  «        t          j        |                     ¦   «         d¦  «        dœ} | j        d||fi |¤Ž}t           j                             |¦  «         |S )Nr)   r*   rK   z_caffe2::Int8Reshape)r   r0   rk   r   r.   r/   r!   r1   )r'   r2   rX   rN   r5   s        r$   r   r   '  sž   € Ø•OÔ2Ð2Ð2ÝŒ~˜a ¨Ñ.Ô.Ð.õ %Ô.¨u¯zªz©|¬|¸YÑGÔGÝ)Ô3°E·J²J±L´LÀ.ÑQÔQðð €Fð ˆQŒTÐ(¨%°ÐAÐA¸&ÐAÐA€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 óü  — |t           j        vrt          j        | |||||¦  «        S |dk    rt	          d¦  «        ‚t          j        |d¦  «        }t          j        |d¦  «        }t          j        |d¦  «        }|||t          j        |                     ¦   «         d¦  «        t          j        |                     ¦   «         d¦  «        dœ} | j        d|fi |¤Ž}t           j         	                    |¦  «         |S )Nr:   z2ONNX quantized slice export only works for step 1.rI   r)   r*   )Ústart_idx_iÚ	end_idx_iÚdim_ir,   r-   z_caffe2::Int8Slice)
r   r0   rk   r   ÚRuntimeErrorrx   r.   r/   r!   r1   )r'   r2   ÚdimÚstartÚendÚsteprN   r5   s           r$   r   r   4  sù   € à•OÔ2Ð2Ð2ÝŒ|˜A˜u c¨5°#°tÑ<Ô<Ð<àˆq‚y€yÝÐOÑPÔPÐPÝÔ& u¨cÑ2Ô2€EÝ
Ô
$ S¨#Ñ
.Ô
.€CÝ
Ô
$ S¨#Ñ
.Ô
.€Cð ØØÝ$Ô.¨u¯zªz©|¬|¸YÑGÔGÝ)Ô3°E·J²J±L´LÀ.ÑQÔQðð €Fð ˆQŒTÐ&¨Ð8Ð8°Ð8Ð8€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 ó–  — t          j        |¦  «        }|d         }|t           j        vrt          j        | ||¦  «        S t          j        |d¦  «        }|d                              ¦   «         d         |d                              ¦   «         d         dœ} | j        dg|¢R d|i|¤Ž}t           j                             |¦  «         |S )Nr   rI   r)   r*   rK   z_caffe2::Int8ConcatÚaxis_i)	r   Ú_unpack_listr0   rk   r
   rx   r/   r!   r1   )	r'   Útensor_listr‹   rL   rM   Útensorsr2   rN   r5   s	            r$   r
   r
   K  sÌ   € ÝÔ*¨;Ñ7Ô7€GØ�AŒJ€EØ•OÔ2Ð2Ð2ÝŒz˜!˜[¨#Ñ.Ô.Ð.å
Ô
$ S¨#Ñ
.Ô
.€Cà˜Q”Z—_’_Ñ&Ô& yÔ1Ø! !œ*Ÿ/š/Ñ+Ô+¨NÔ;ðð €Fð ˆQŒTÐ'ÐH¨'ÐHÐHÐH¸#ÐHÀÐHÐH€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   c                 óº   — |t           j        vrt          j        | |¦  «        S d}d}||dœ} | j        d|fi |¤Ž}t           j                             |¦  «         |S )Ng      p?r   rK   z_caffe2::Int8Sigmoid)r   r0   rk   r   r!   r1   )r'   r2   Ú	out_scalerM   rN   r5   s         r$   r   r   [  sz   € à•OÔ2Ð2Ð2ÝŒ~˜a Ñ'Ô'Ð'ð €IØ€JàØ$ðð €Fð ˆQŒTÐ(¨%Ð:Ð:°6Ð:Ð:€FÝÔ"×&Ò& vÑ.Ô.Ð.Ø€Mr&   )NNNrq   )NN)"r   r   Ú
torch.onnxr   r   rk   Útorch.onnx._internalr   r   ÚstrÚintr%   ÚGraphContextr6   r=   r@   rF   Ú
parse_argsrO   rU   rd   rf   r1   r   r   r   r   r   r   r   r   r   r
   r   rr   r&   r$   ú<module>rœ      s™  ðð Ð Ð Ð Ø €€€à AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ð@ 3ð @°ð @ð @ð @ð @ð<�yÔ-ð ð ð ð ð+�Ô'ð +ð +ð +ð +ð
+�Ô'ð +ð +ð +ð +ð
�iÔ,ð ð ð ð ð €Ô˜C  c¨3°Ñ4Ô4ðˆiÔ$ð ð ð ñ 5Ô4ððØÔðð ð ð ð €Ô˜C  c¨4°°t¸SÀ#ÀsÑKÔKðØÔðð ð ñ LÔKðð8 €Ô˜C  c¨4°°t¸SÀ#ÀsÑKÔKðØÔðð ð ñ LÔKðð8 €Ô˜C  c¨3Ñ/Ô/ðˆ9Ô!ð ð ð ñ 0Ô/ðð €Ô˜CÑ Ô ð	ˆIÔ"ð 	ð 	ð 	ñ !Ô ð	ð €Ô˜C  c¨3Ñ/Ô/ð˜9Ô1ð ð ð ñ 0Ô/ðð €Ô˜CÑ Ô ð2�)Ô(ð 2ð 2ð 2ñ !Ô ð2ð €Ô˜C  c¨3°°S¸#¸sÑCÔCðØÔðð ð ñ DÔCðð$ ØØðð ØÔðð ð ð ð0 €Ô˜C  t¨T°4¸Ñ=Ô=ðØÔðð ð ñ >Ô=ðð8 €Ô˜C  t¨T°3¸¸VÑDÔDð ð!ð !ØÔð!ð !ð !ñ EÔDð!ðH
ˆyÔ%ð 
ð 
ð 
ð 
ð €Ô˜C  c¨3°Ñ4Ô4ðˆYÔ#ð ð ð ñ 5Ô4ðð,ð ˆ9Ô!ð ð ð ð ð  €Ô˜CÑ Ô ðˆyÔ%ð ð ð ñ !Ô ðð ð r&   