class_docstr: Quantized counterpart of the nn.Conv2d module that applies QuantNoise during training.
  
  Args:
      - standard nn.Conv2d parameters
      - p: amount of noise to inject (0 = no quantization, 1 = quantize all the weights)
      - bits: number of bits
      - method: choose among {"tensor", "histogram", "channel"}
      - update_step: recompute scale and zero_point every update_steps iterations
  
  Remarks:
      - We use the straight-thgourh estimator so that the gradients
        back-propagate nicely in the network, this is implemented with
        the detach() trick
      - Parameters scale and zero_point are recomputed every update_step
        forward pass to reduce the overhead
      - At test time, the weights are fully quantized
class_docstr_tok: ["Quantized","counterpart","of","the","nn.Conv2d","module","that","applies","QuantNoise","during","training",".","Args",":","-","standard","nn.Conv2d","parameters","-","p",":","amount","of","noise","to","inject","(","0","=","no","quantization",",","1","=","quantize","all","the","weights",")","-","bits",":","number","of","bits","-","method",":","choose","among","{","``","tensor","''",",","``","histogram","''",",","``","channel","''","}","-","update_step",":","recompute","scale","and","zero_point","every","update_steps","iterations","Remarks",":","-","We","use","the","straight-thgourh","estimator","so","that","the","gradients","back-propagate","nicely","in","the","network",",","this","is","implemented","with","the","detach","(",")","trick","-","Parameters","scale","and","zero_point","are","recomputed","every","update_step","forward","pass","to","reduce","the","overhead","-","At","test","time",",","the","weights","are","fully","quantized"]
code: def extra_repr(self):
      return (
          "in_channels={}, out_channels={}, kernel_size={}, stride={}, "
          "padding={}, dilation={}, groups={}, bias={}, quant_noise={}, "
          "bits={}, method={}".format(
              self.in_channels,
              self.out_channels,
              self.kernel_size,
              self.stride,
              self.padding,
              self.dilation,
              self.groups,
              self.bias is not None,
              self.p,
              self.bits,
              self.method,
          )
      )
  
file_path: fairseq/fairseq/modules/quantization/scalar/modules/qconv.py
imports: import torch
  import torch.nn.functional
  from torch.nn.modules.conv import _ConvNd
  from torch.nn.modules.utils import _pair
  from ..ops import emulate_int
label_desc: Use image node_id 4 for calling the IntConv2d obj's underlying member method code with example usage: obj.extra_repr() and returns: str