code: def __init__(
      self,
      inplanes: int,
      planes: int,
      conv_builder: Callable[..., nn.Module],
      stride: int = 1,
      downsample: Optional[nn.Module] = None,
  ) -> None:
      midplanes = (inplanes * planes * 3 * 3 * 3) // (
          inplanes * 3 * 3 + 3 * planes
      )
  
      super().__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: from functools import partial
  from typing import Any, Callable, List, Optional, Sequence, Tuple, Type, Union
  import torch.nn
  from torch import Tensor
  from ...transforms._presets import VideoClassification
  from ...utils import _log_api_usage_once
  from .._api import register_model, Weights, WeightsEnum
  from .._meta import _KINETICS400_CATEGORIES
  from .._utils import _ovewrite_named_param, handle_legacy_interface
  from .._utils import _ModelURLs
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)