class_docstr: Constructs the ISONet for CIFAR datasets
  
  Args:
      cfg: A YACS config object.
code: def _construct(self, net_params):
      assert (
          net_params["depths"] - 2
      ) % 6 == 0, "Model depth should be of the format 6n + 2 for cifar"  # Seems because this is a ResNet
      # Each stage has the same number of blocks for cifar
  
      d = int((net_params["depths"] - 2) / 6)
      # Stem: (N, 3, 32, 32) -> (N, 16, 32, 32)
      self.stem = isonet.ResStem(
          w_in=3,
          w_out=16,
          net_params=net_params,
          kernelsize=3,
          stride=1,
          padding=1,
      )
      # Stage 1: (N, 16, 32, 32) -> (N, 16, 32, 32)
      self.s1 = isonet.ResStage(
          w_in=16, w_out=16, stride=1, net_params=net_params, d=d
      )
      # Stage 2: (N, 16, 32, 32) -> (N, 32, 16, 16)
      self.s2 = isonet.ResStage(
          w_in=16, w_out=32, stride=2, net_params=net_params, d=d
      )
      # Stage 3: (N, 32, 16, 16) -> (N, 64, 8, 8)
      self.s3 = isonet.ResStage(
          w_in=32, w_out=64, stride=2, net_params=net_params, d=d
      )
      # Head: (N, 64, 8, 8) -> (N, num_classes)
      self.head = isonet.ResHead(w_in=64, net_params=net_params)
  
imports: import kale.predict.isonet
label_desc: Use image node_id 2 for calling the CifarIsoNet obj's underlying member method code with example usage: obj._construct(net_params) without return types