class_docstr: 2D Squeeze and excitation layer, as per https://arxiv.org/pdf/1709.01507.pdf
docstr: Args:
      x (tensor): 2D image of format C * H * W
docstr_tok: ["Args",":","x","(","tensor",")",":","2D","image","of","format","C","*","H","*","W"]
code: def forward(self, x: torch.Tensor) -> torch.Tensor:
      """
      Args:
          x (tensor): 2D image of format C * H * W
      """
      x_squeezed = self.avgpool(x)
      x_excited = self.excitation(x_squeezed)
      x_scaled = x * x_excited
      return x_scaled
  
file_path: pytorchvideo/pytorchvideo/layers/squeeze_excitation.py
imports: from typing import Callable, Optional
  import torch
  import torch.nn
  from pytorchvideo.models.resnet import ResBlock
label_desc: Use image node_id 2 for calling the SqueezeAndExcitationLayer2D obj's underlying member method code with example usage: obj.forward(x) and returns: x_scaled