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 __init__(
      self, inplanes, planes, conv_builder, stride=1, downsample=None
  ):
      midplanes = (inplanes * planes * 3 * 3 * 3) // (
          inplanes * 3 * 3 + 3 * planes
      )
  
      super(BasicBlock, self).__init__()
      self.conv1 = nn.Sequential(
          conv_builder(inplanes, planes, midplanes, stride),
          nn.BatchNorm3d(planes),
          nn.ReLU(inplace=True),
      )
      self.conv2 = nn.Sequential(
          conv_builder(planes, planes, midplanes),
          nn.BatchNorm3d(planes),
      )
      self.relu = nn.ReLU(inplace=True)
      self.downsample = downsample
      self.stride = stride
  
imports: import torch.nn
  from torch.hub import load_state_dict_from_url
label_desc: Use image node_id 1 to create a new BasicBlock object from inherited base classes: nn with example: obj = BasicBlock(inplanes, planes, conv_builder, stride, downsample)