class_docstr: Basic ResNet building block. Each block consists of two convolutional layers with a ReLU activation function
  after each layer and residual connections. In `forward`, we check if SELayers are used, which are
  channel-wise (SELayerC) and temporal-wise (SELayerT).
code: def forward(self, x):
      residual = x
  
      out = self.conv1(x)
      out = self.conv2(out)
      if self.downsample is not None:
          residual = self.downsample(x)
  
      # Check if SELayer is used.
      if "SELayerC" in dir(self):  # check channel-wise
          out = self.SELayerC(out)
      if "SELayerCoC" in dir(self):
          out = self.SELayerCoC(out)
      if "SELayerMC" in dir(self):
          out = self.SELayerMC(out)
      if "SELayerMAC" in dir(self):
          out = self.SELayerMAC(out)
  
      if "SELayerT" in dir(self):  # check temporal-wise
          out = self.SELayerT(out)
  
      if "SELayerCTc" in dir(self):  # check channel-temporal-wise
          out = self.SELayerCTc(out)
      if "SELayerCTt" in dir(self):
          out = self.SELayerCTt(out)
  
      if "SELayerTCt" in dir(self):  # check temporal-channel-wise
          out = self.SELayerTCt(out)
      if "SELayerTCc" in dir(self):
          out = self.SELayerTCc(out)
  
      out += residual
      out = self.relu(out)
  
      return out
  
imports: import torch.nn
  from torch.hub import load_state_dict_from_url
label_desc: Use image node_id 2 for calling the BasicBlock obj's underlying member method code with example usage: obj.forward(x) and returns: out