class_docstr: Squeeze and Excite module.
  
  Pytorch implementation of `Squeeze-and-Excitation Networks` -
  https://arxiv.org/pdf/1709.01507.pdf
class_docstr_tok: ["Squeeze","and","Excite","module",".","Pytorch","implementation","of","`","Squeeze-and-Excitation","Networks","`","-","https",":","\/\/arxiv.org\/pdf\/1709.01507.pdf"]
docstr: Apply forward pass.
docstr_tok: ["Apply","forward","pass","."]
code: def forward(self, inputs: torch.Tensor) -> torch.Tensor:
      """Apply forward pass."""
      b, c, h, w = inputs.size()
      x = F.avg_pool2d(inputs, kernel_size=[h, w])
      x = self.reduce(x)
      x = F.relu(x)
      x = self.expand(x)
      x = torch.sigmoid(x)
      x = x.view(-1, c, 1, 1)
      return inputs * x
  
file_path: ml-fastvit/models/modules/mobileone.py
imports: from typing import Union, Tuple
  import copy
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 2 for calling the SEBlock obj's underlying member method code with example usage: obj.forward(inputs) and returns: unknown