code: def calc_mvit_feature_geometry(cfg):
      feat_size = [
          [
              cfg.DATA.NUM_FRAMES // cfg.MVIT.PATCH_STRIDE[0]
              if len(cfg.MVIT.PATCH_STRIDE) > 2
              else 1,
              cfg.DATA.TRAIN_CROP_SIZE // cfg.MVIT.PATCH_STRIDE[-2],
              cfg.DATA.TRAIN_CROP_SIZE // cfg.MVIT.PATCH_STRIDE[-1],
          ]
          for i in range(cfg.MVIT.DEPTH)
      ]
      feat_stride = [
          [
              cfg.MVIT.PATCH_STRIDE[0]
              if len(cfg.MVIT.PATCH_STRIDE) > 2
              else 1,
              cfg.MVIT.PATCH_STRIDE[-2],
              cfg.MVIT.PATCH_STRIDE[-1],
          ]
          for i in range(cfg.MVIT.DEPTH)
      ]
      for _, x in enumerate(cfg.MVIT.POOL_Q_STRIDE):
          for i in range(cfg.MVIT.DEPTH):
              if i >= x[0]:
                  for j in range(len(feat_size[i])):
                      feat_size[i][j] = feat_size[i][j] // x[j + 1]
                      feat_stride[i][j] = feat_stride[i][j] * x[j + 1]
      return feat_size, feat_stride
  
file_path: SlowFast/slowfast/models/utils.py
imports: import numpy
  import torch
  import slowfast.utils.logging
label_desc: Use image node_id 9 for calling a global function with example usage: calc_mvit_feature_geometry(cfg) and returns: feat_size,  feat_stride