class_docstr: A pooling module augmented with Conv, Normalization and Activation both
  before and after pooling for the head layer of X3D.
  
  ::
  
                                  Conv3d (pre_conv)
                                         ↓
                               Normalization (pre_norm)
                                         ↓
                                 Activation (pre_act)
                                         ↓
                                      Pool3d
                                         ↓
                                  Conv3d (post_conv)
                                         ↓
                               Normalization (post_norm)
                                         ↓
                                 Activation (post_act)
docstr: Args:
      pre_conv (torch.nn.modules): convolutional module.
      pre_norm (torch.nn.modules): normalization module.
      pre_act (torch.nn.modules): activation module.
      pool (torch.nn.modules): pooling module.
      post_conv (torch.nn.modules): convolutional module.
      post_norm (torch.nn.modules): normalization module.
      post_act (torch.nn.modules): activation module.
docstr_tok: ["Args",":","pre_conv","(","torch.nn.modules",")",":","convolutional","module",".","pre_norm","(","torch.nn.modules",")",":","normalization","module",".","pre_act","(","torch.nn.modules",")",":","activation","module",".","pool","(","torch.nn.modules",")",":","pooling","module",".","post_conv","(","torch.nn.modules",")",":","convolutional","module",".","post_norm","(","torch.nn.modules",")",":","normalization","module",".","post_act","(","torch.nn.modules",")",":","activation","module","."]
code: def __init__(
      self,
      *,
      pre_conv: nn.Module = None,
      pre_norm: nn.Module = None,
      pre_act: nn.Module = None,
      pool: nn.Module = None,
      post_conv: nn.Module = None,
      post_norm: nn.Module = None,
      post_act: nn.Module = None,
  ) -> None:
      """
      Args:
          pre_conv (torch.nn.modules): convolutional module.
          pre_norm (torch.nn.modules): normalization module.
          pre_act (torch.nn.modules): activation module.
          pool (torch.nn.modules): pooling module.
          post_conv (torch.nn.modules): convolutional module.
          post_norm (torch.nn.modules): normalization module.
          post_act (torch.nn.modules): activation module.
      """
      super().__init__()
      set_attributes(self, locals())
      assert self.pre_conv is not None
      assert self.pool is not None
      assert self.post_conv is not None
  
imports: import math
  from typing import Callable, Tuple
  import numpy
  import torch
  import torch.nn
  from fvcore.nn.squeeze_excitation import SqueezeExcitation
  from pytorchvideo.layers.convolutions import Conv2plus1d
  from pytorchvideo.layers.swish import Swish
  from pytorchvideo.layers.utils import round_repeats, round_width, set_attributes
  from pytorchvideo.models.head import ResNetBasicHead
  from pytorchvideo.models.net import Net
  from pytorchvideo.models.resnet import BottleneckBlock, ResBlock, ResStage
  from pytorchvideo.models.stem import ResNetBasicStem
label_desc: Use image node_id 1 to create a new ProjectedPool object from inherited base classes: nn with example: obj = ProjectedPool()