
    Ph                     x    d dl Z dgZ G d de j                  j                  j                  j
                        Zy)    NLinearc                   ,     e Zd ZdZ	 	 d	 d fdZ xZS )r   ah  
    A linear module attached with FakeQuantize modules for weight,
    used for dynamic quantization aware training.

    We adopt the same interface as `torch.nn.Linear`, please see
    https://pytorch.org/docs/stable/nn.html#torch.nn.Linear
    for documentation.

    Similar to `torch.nn.Linear`, with FakeQuantize modules initialized to
    default.
    c                     t         |   ||||||       t        j                  j                  j
                  j                  |      st        d      y )NzqDynamic QAT requires a memoryless observer.This means a MovingAverage observer with averaging constant equal to 1)super__init__torchaoquantizationqconfig_activation_is_memoryless
ValueError)selfin_featuresout_featuresbiasr   devicedtype	__class__s          qC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/ao/nn/qat/dynamic/modules/linear.pyr   zLinear.__init__   sQ    lD'65Qxx$$,,FFwOY  P    )TNNN)returnN)__name__
__module____qualname____doc__r   __classcell__)r   s   @r   r   r      s"    
 8<26;? r   )r   __all__r	   nnqatr    r   r   <module>r!      s-    *UXX[[__## r   