code: def __init__(self, C_in, C_out, stride):
      super(FactorizedReduce, self).__init__()
      self.stride = stride
      self.C_in = C_in
      self.C_out = C_out
      self.relu = nn.ReLU(inplace=False)
      if stride == 2:
          C_outs = [C_out // 2, C_out - C_out // 2]
          self.convs = nn.ModuleList()
          for i in range(2):
              self.convs.append(
                  nn.Conv2d(
                      C_in,
                      C_outs[i],
                      1,
                      stride=stride,
                      padding=0,
                      bias=False,
                  )
              )
          self.pad = nn.ConstantPad2d((0, 1, 0, 1), 0)
      else:
          raise ValueError("Invalid stride : {:}".format(stride))
      self.bn = nn.BatchNorm2d(C_out)
  
imports: import torch
  import torch.nn
label_desc: Use image node_id 1 to create a new FactorizedReduce object from inherited base classes: nn with example: obj = FactorizedReduce(C_in, C_out, stride)