class_docstr: Basic transformation: 3x3, 3x3
class_docstr_tok: ["Basic","transformation",":","3x3",",","3x3"]
code: def _construct(self, w_in, w_out, stride):
      # 3x3, BN, ReLU
      self.a = nn.Conv2d(
          w_in,
          w_out,
          kernel_size=3,
          stride=stride,
          padding=1,
          bias=not self.has_bn and not self.use_srelu,
      )
      if self.has_bn:
          self.a_bn = nn.BatchNorm2d(w_out)
      self.a_relu = (
          nn.ReLU(inplace=True) if not self.use_srelu else SReLU(w_out)
      )
      # 3x3, BN
      self.b = nn.Conv2d(
          w_out,
          w_out,
          kernel_size=3,
          stride=1,
          padding=1,
          bias=not self.has_bn and not self.use_srelu,
      )
      if self.has_bn:
          self.b_bn = nn.BatchNorm2d(w_out)
          self.b_bn.final_bn = True
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 2 for calling the BasicTransform obj's underlying member method code with example usage: obj._construct(w_in, w_out, stride) without return types