
    ёi                     2    S SK Jr  SSKJr   " S S\5      rg)    )Layer   )BaseQuanterc                   D   ^  \ rS rSrSr SS\S\4U 4S jjjrS rSr	U =r
$ )	ObserveWrapper   a  
Put an observer layer and an observed layer into a wrapping layer.
It is used to insert layers into the model for QAT or PTQ.
Args:
    observer(BaseQuanter): Observer layer
    observed(Layer): Observed layer
    observe_input(bool): If it is true the observer layer will be called before observed layer.
        If it is false the observed layer will be called before observer layer. Default: True.
observerobservedc                 F   > [         TU ]  5         Xl        X l        X0l        g N)super__init__	_observer	_observed_observe_input)selfr	   r
   observe_input	__class__s       [/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/quantization/wrapper.pyr   ObserveWrapper.__init__   s      	!!+    c                     U R                   (       a%  U R                  " U0 UD6nU R                  " U40 UD6$ U R                  " U0 UD6nU R                  " U40 UD6$ r   )r   r   r   )r   inputskwargsouts       r   forwardObserveWrapper.forward*   sY    ..&3F3C>>#000..&3F3C>>#000r   )r   r   r   )T)__name__
__module____qualname____firstlineno____doc__r   r   r   r   __static_attributes____classcell__)r   s   @r   r   r      s3     		,	, 	, 	,1 1r   r   N)	paddle.nnr   base_quanterr   r    r   r   <module>r(      s     %1U 1r   