U
    U?h                     @   s  d dl mZmZ 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 d dlmZmZmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZmZ d dlmZ d dl m!Z!m"Z"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6 d dl7m8Z8m9Z9 d dl:m;Z; eeedZ<ee!eedZ=e=>e< eeee#e
e
eeeee&ee6e*eeee1e,ee3e9dZ?e?>e< eeeeeeeeee0e%ee"e5ee8e(e(e(dZ@dd ZAdd  ZBd!d" ZCd#S )$   )QDQRemovableActivationQLinearActivation)QArgMax)AttentionQuantQuantOperatorBase)QLinearBinaryOp)QLinearConcat)ConvIntegerQDQConvQLinearConv)Direct8BitOpQDQDirect8BitOp)EmbedLayerNormalizationQuant)GatherQuant	QDQGather)QGlobalAveragePool)QDQGemmQLinearGemm)	LSTMQuant)MatMulInteger	QDQMatMulQLinearMatMul)
QDQMaxPoolQMaxPool)QDQNormalization)QPad)QLinearPool)QDQOperatorBase)	QDQResizeQResize)QLinearSoftmax)QDQSplitQSplit)QDQWhereQLinearWhere)QuantizationMode)Gather	TransposeZEmbedLayerNormalization)ConvMatMulZ	AttentionZLSTM)ZArgMaxr)   Gemmr*   AddZMulReluClipZ	LeakyReluZSigmoidMaxPoolZGlobalAveragePoolSplitZPadReshapeSqueeze	UnsqueezeResizeAveragePoolZConcatZSoftmaxWhere)r)   ZConvTransposer+   r.   r-   r1   r(   r2   r3   r4   r/   r5   r*   r0   r'   r6   ZInstanceNormalizationZLayerNormalizationZBatchNormalizationc                 C   s
   t | |S Nr   onnx_quantizernode r;   S/var/www/html/venv/lib/python3.8/site-packages/onnxruntime/quantization/registry.pyCreateDefaultOpQuantizerY   s    r=   c                 C   sD   | j tjkrtnt}|j|kr:||j | |}| r:|S t| |S r7   )moder&   Z
IntegerOpsIntegerOpsRegistryQLinearOpsRegistryop_typeZshould_quantizer   )r9   r:   registryZop_quantizerr;   r;   r<   CreateOpQuantizer]   s    
rC   c                 C   s$   |j tkrt|j  | |S t| |S r7   )rA   QDQRegistryr   r8   r;   r;   r<   CreateQDQQuantizerf   s    
rE   N)DZoperators.activationr   r   Zoperators.argmaxr   Zoperators.attentionr   Zoperators.base_operatorr   Zoperators.binary_opr   Zoperators.concatr	   Zoperators.convr
   r   r   Zoperators.direct_q8r   r   Zoperators.embed_layernormr   Zoperators.gatherr   r   Zoperators.gavgpoolr   Zoperators.gemmr   r   Zoperators.lstmr   Zoperators.matmulr   r   r   Zoperators.maxpoolr   r   Zoperators.normr   Zoperators.padr   Zoperators.poolingr   Zoperators.qdq_base_operatorr   Zoperators.resizer   r    Zoperators.softmaxr!   Zoperators.splitr"   r#   Zoperators.wherer$   r%   Zquant_utilsr&   ZCommonOpsRegistryr?   updater@   rD   r=   rC   rE   r;   r;   r;   r<   <module>   s   

	