class_docstr: Quantized 3D Conv
class_docstr_tok: ["Quantized","3D","Conv"]
code: def forward(self, input):
      # the actual quantization happens in the next level of the class hierarchy
      quant_input, quant_weight = self._quant(input)
  
      if self.padding_mode == "circular":
          expanded_padding = (
              (self.padding[2] + 1) // 2,
              self.padding[2] // 2,
              (self.padding[1] + 1) // 2,
              self.padding[1] // 2,
              (self.padding[0] + 1) // 2,
              self.padding[0] // 2,
          )
          output = F.conv3d(
              F.pad(quant_input, expanded_padding, mode="circular"),
              quant_weight,
              self.bias,
              self.stride,
              _triple(0),
              self.dilation,
              self.groups,
          )
      else:
          output = F.conv3d(
              quant_input,
              quant_weight,
              self.bias,
              self.stride,
              self.padding,
              self.dilation,
              self.groups,
          )
  
      return output
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn.modules.utils import _single, _pair, _triple
  from torch.nn.modules.conv import _ConvTransposeNd
  from csrc.pytorch.pytorch_quantization import tensor_quant
  from .None import _utils
label_desc: Use image node_id 2 for calling the QuantConv3d obj's underlying member method code with example usage: obj.forward(input) and returns: output