class_docstr: X3D model builder. It builds a X3D network backbone, which is a ResNet.
  
  Christoph Feichtenhofer.
  "X3D: Expanding Architectures for Efficient Video Recognition."
  https://arxiv.org/abs/2004.04730
class_docstr_tok: ["X3D","model","builder",".","It","builds","a","X3D","network","backbone",",","which","is","a","ResNet",".","Christoph","Feichtenhofer",".","``","X3D",":","Expanding","Architectures","for","Efficient","Video","Recognition",".","''","https",":","\/\/arxiv.org\/abs\/2004.04730"]
docstr: The `__init__` method of any subclass should also contain these
      arguments.
  
  Args:
      cfg (CfgNode): model building configs, details are in the
          comments of the config file.
code: def __init__(self, cfg):
      """
      The `__init__` method of any subclass should also contain these
          arguments.
  
      Args:
          cfg (CfgNode): model building configs, details are in the
              comments of the config file.
      """
      super(X3D, self).__init__()
      self.norm_module = get_norm(cfg)
      self.enable_detection = cfg.DETECTION.ENABLE
      self.num_pathways = 1
  
      exp_stage = 2.0
      self.dim_c1 = cfg.X3D.DIM_C1
  
      self.dim_res2 = (
          round_width(self.dim_c1, exp_stage, divisor=8)
          if cfg.X3D.SCALE_RES2
          else self.dim_c1
      )
      self.dim_res3 = round_width(self.dim_res2, exp_stage, divisor=8)
      self.dim_res4 = round_width(self.dim_res3, exp_stage, divisor=8)
      self.dim_res5 = round_width(self.dim_res4, exp_stage, divisor=8)
  
      self.block_basis = [
          # blocks, c, stride
          [1, self.dim_res2, 2],
          [2, self.dim_res3, 2],
          [5, self.dim_res4, 2],
          [3, self.dim_res5, 2],
      ]
      self._construct_network(cfg)
      init_helper.init_weights(
          self, cfg.MODEL.FC_INIT_STD, cfg.RESNET.ZERO_INIT_FINAL_BN
      )
  
imports: import math
  from functools import partial
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn.init import trunc_normal_
  import slowfast.utils.logging
  import slowfast.utils.weight_init_helper
  from slowfast.models.attention import MultiScaleBlock
  from slowfast.models.batchnorm_helper import get_norm
  from slowfast.models.common import TwoStreamFusion
  from slowfast.models.reversible_mvit import ReversibleMViT
  from slowfast.models.utils import calc_mvit_feature_geometry, get_3d_sincos_pos_embed, round_width, validate_checkpoint_wrapper_import
  from .None import head_helper, operators, resnet_helper, stem_helper
  from .build import MODEL_REGISTRY
label_desc: Use image node_id 1 to create a new X3D object from inherited base classes: nn with example: obj = X3D(cfg)