class_docstr: A CNN architecture shown to be a good baseline for a CIFAR-10 benchmark.
  
  Parameters
  ----------
  input_channel : int
  n_outputs : int
  dropout_rate : float
  top_bn : bool
  
  Methods
  -------
  forward
    forward pass in PyTorch
code: def forward(
      self,
      x,
  ):
      h = x
      h = self.c1(h)
      h = F.leaky_relu(call_bn(self.bn1, h), negative_slope=0.01)
      h = self.c2(h)
      h = F.leaky_relu(call_bn(self.bn2, h), negative_slope=0.01)
      h = self.c3(h)
      h = F.leaky_relu(call_bn(self.bn3, h), negative_slope=0.01)
      h = F.max_pool2d(h, kernel_size=2, stride=2)
      h = F.dropout2d(h, p=self.dropout_rate)
  
      h = self.c4(h)
      h = F.leaky_relu(call_bn(self.bn4, h), negative_slope=0.01)
      h = self.c5(h)
      h = F.leaky_relu(call_bn(self.bn5, h), negative_slope=0.01)
      h = self.c6(h)
      h = F.leaky_relu(call_bn(self.bn6, h), negative_slope=0.01)
      h = F.max_pool2d(h, kernel_size=2, stride=2)
      h = F.dropout2d(h, p=self.dropout_rate)
  
      h = self.c7(h)
      h = F.leaky_relu(call_bn(self.bn7, h), negative_slope=0.01)
      h = self.c8(h)
      h = F.leaky_relu(call_bn(self.bn8, h), negative_slope=0.01)
      h = self.c9(h)
      h = F.leaky_relu(call_bn(self.bn9, h), negative_slope=0.01)
      h = F.avg_pool2d(h, kernel_size=h.data.shape[2])
  
      h = h.view(h.size(0), h.size(1))
      logit = self.l_c1(h)
      if self.top_bn:
          logit = call_bn(self.bn_c1, logit)
      return logit
  
imports: import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 2 for calling the CNN obj's underlying member method code with example usage: obj.forward(x) and returns: logit