class_docstr: Squeeze-and-Excitation module from https://arxiv.org/pdf/1709.01507.pdf
  
  Args:
      dim: the original hidden dim.
      sqrate: the squeeze rate in hidden dim.
  Returns:
      New features map that channels are gated
      by sigmoid weights from SE module.
class_docstr_tok: ["Squeeze-and-Excitation","module","from","https",":","\/\/arxiv.org\/pdf\/1709.01507.pdf","Args",":","dim",":","the","original","hidden","dim",".","sqrate",":","the","squeeze","rate","in","hidden","dim",".","Returns",":","New","features","map","that","channels","are","gated","by","sigmoid","weights","from","SE","module","."]
code: def forward(self, x: torch.Tensor) -> torch.Tensor:
      x = x * self.se(x)
  
      return x * self.attn(x)
  
imports: from collections import OrderedDict
  from typing import Optional, Tuple, Type
  import torch
  import torch.nn
  from torchvision.models.resnet import Bottleneck, conv1x1, conv3x3
  from torchvision.ops.misc import FrozenBatchNorm2d
label_desc: Use image node_id 2 for calling the SEModule obj's underlying member method code with example usage: obj.forward(x) and returns: unknown