code: def __init__(
      self,
      in_features,
      out_features,
      pre_activation=None,
      *args,
      **kwargs,
  ):
      super(QuantLinear, self).__init__(
          in_features, out_features, *args, **kwargs
      )
      if pre_activation == "relu":
          input_quant_config = relu_quant_config
      else:
          input_quant_config = act_quant_config
  
      self.input_quant = None
      if pre_activation != "encoder_out":
          self.input_quant = TensorQuantizer(input_quant_config)
      self.output_quant = None
      if pre_activation is None or pre_activation != "encoder_out":
          self.output_quant = TensorQuantizer(out_quant_config)
  
      self.weight_quant = TensorQuantizer(weight_quant_config)
  
file_path: lightseq/lightseq/training/ops/pytorch/quantization.py
imports: import torch.nn.functional
  from torch.nn import Linear
  from lightseq.training.pytorch_quantization.tensor_quant import QuantDescriptor, QUANT_DESC_8BIT_PER_TENSOR
  from lightseq.training.pytorch_quantization.nn.modules.tensor_quantizer import TensorQuantizer, enable_quant, disable_quant, qat_mode, ptq_mode
label_desc: Use image node_id 1 to create a new QuantLinear object from inherited base classes: Linear with example: obj = QuantLinear(in_features, out_features, pre_activation)