class_docstr: Simply wrap the RegnetBlocksFactory with the FSDP
  This takes care of wrapping BN properly,
  initializing the weights etc.
code: def create_any_stage(
      self,
      width_in: int,
      width_out: int,
      stride: int,
      depth: int,
      group_width: int,
      bottleneck_multiplier: float,
      params: Union[RegNetParams, AnyNetParams],
      group_delimiters: List[int],
      group_checkpoint: List[bool],
      stage_index: int = 0,
  ):
      assert len(group_delimiters) == len(group_checkpoint)
  
      any_stage = AnyStage()
      prev_depth = 0
      for group_index, next_depth in enumerate(group_delimiters):
          block_group = nn.Sequential()
          for i in range(prev_depth, next_depth):
              block = self.create_block(
                  width_in=width_in if i == 0 else width_out,
                  width_out=width_out,
                  stride=stride if i == 0 else 1,
                  params=params,
                  group_width=group_width,
                  bottleneck_multiplier=bottleneck_multiplier,
              )
              any_stage.stage_depth += block.depth
              block_group.add_module(f"block{stage_index}-{i}", block)
          prev_depth = next_depth
          if group_checkpoint[group_index]:
              block_group = checkpoint_wrapper(block_group)
          block_group = fsdp_wrapper(block_group, **self.fsdp_config)
          any_stage.add_module(
              f"block{stage_index}-part{group_index}", block_group
          )
      return any_stage
  
imports: import math
  from collections import OrderedDict
  from typing import List, Tuple, Union
  import torch
  import torch.nn
  from classy_vision.generic.util import get_torch_version
  from classy_vision.models.anynet import ActivationType, AnyNetParams, BlockType, ResBasicBlock, ResBottleneckBlock, ResBottleneckLinearBlock, ResStemCifar, ResStemIN, SimpleStemIN, StemType, VanillaBlock
  from classy_vision.models.regnet import RegNetParams
  from fairscale.nn import checkpoint_wrapper
  from vissl.config import AttrDict
  from vissl.data.collators.collator_helper import MultiDimensionalTensor
  from vissl.models.model_helpers import Flatten, get_trunk_forward_outputs, get_tunk_forward_interpolated_outputs, transform_model_input_data_type
  from vissl.models.trunks import register_model_trunk
  from vissl.utils.fsdp_utils import auto_wrap_big_layers, fsdp_auto_wrap_bn, fsdp_wrapper
  from vissl.utils.misc import set_torch_seed
label_desc: Use image node_id 4 for calling the RegnetFSDPBlocksFactory obj's underlying member method code with example usage: obj.create_any_stage(width_in, width_out, stride, depth, group_width, bottleneck_multiplier, params, group_delimiters, group_checkpoint, stage_index) and returns: any_stage