class_docstr: Residual convolution module.
docstr: Init.
  
  Args:
      features (int): number of features
docstr_tok: ["Init",".","Args",":","features","(","int",")",":","number","of","features"]
code: def __init__(self, features, activation, bn):
      """Init.
  
      Args:
          features (int): number of features
      """
      super().__init__()
  
      self.bn = bn
  
      self.groups = 1
  
      self.conv1 = nn.Conv2d(
          features,
          features,
          kernel_size=3,
          stride=1,
          padding=1,
          bias=True,
          groups=self.groups,
      )
  
      self.conv2 = nn.Conv2d(
          features,
          features,
          kernel_size=3,
          stride=1,
          padding=1,
          bias=True,
          groups=self.groups,
      )
  
      if self.bn == True:
          self.bn1 = nn.BatchNorm2d(features)
          self.bn2 = nn.BatchNorm2d(features)
  
      self.activation = activation
  
      self.skip_add = nn.quantized.FloatFunctional()
  
imports: import torch
  import torch.nn
  from .vit import _make_pretrained_vitb_rn50_384, _make_pretrained_vitl16_384, _make_pretrained_vitb16_384, forward_vit
label_desc: Use image node_id 1 to create a new ResidualConvUnit_custom object from inherited base classes: nn with example: obj = ResidualConvUnit_custom(features, activation, bn)