class_docstr: SE Module as defined in original SE-Nets with a few additions
  Additions include:
      * divisor can be specified to keep channels % div == 0 (default: 8)
      * reduction channels can be specified directly by arg (if rd_channels is set)
      * reduction channels can be specified by float rd_ratio (default: 1/16)
      * global max pooling can be added to the squeeze aggregation
      * customizable activation, normalization, and gate layer
code: def forward(self, x):
      x_se = x.mean(
          (1, 2), keepdims=True
      )  # FIXME avg dim [1:n-1], don't assume 2D NHWC
      x_se = self.fc1(x_se)
      x_se = self.act(x_se)
      x_se = self.fc2(x_se)
      return x * self.gate(x_se)
  
file_path: pytorch-image-models/timm/layers/squeeze_excite.py
imports: from torch import nn
  from .create_act import create_act_layer
  from .helpers import make_divisible
label_desc: Use image node_id 2 for calling the SqueezeExciteCl obj's underlying member method code with example usage: obj.forward(x) and returns: unknown