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: Construct a Squeeze and Excite Module.
  
  Args:
      in_channels: Number of input channels.
      rd_ratio: Input channel reduction ratio.
docstr_tok: ["Construct","a","Squeeze","and","Excite","Module",".","Args",":","in_channels",":","Number","of","input","channels",".","rd_ratio",":","Input","channel","reduction","ratio","."]
code: def __init__(
      self, in_channels: int, rd_ratio: float = 0.0625
  ) -> None:
      """Construct a Squeeze and Excite Module.
  
      Args:
          in_channels: Number of input channels.
          rd_ratio: Input channel reduction ratio.
      """
      super(SEBlock, self).__init__()
      self.reduce = nn.Conv2d(
          in_channels=in_channels,
          out_channels=int(in_channels * rd_ratio),
          kernel_size=1,
          stride=1,
          bias=True,
      )
      self.expand = nn.Conv2d(
          in_channels=int(in_channels * rd_ratio),
          out_channels=in_channels,
          kernel_size=1,
          stride=1,
          bias=True,
      )
  
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 1 to create a new SEBlock object from inherited base classes: nn with example: obj = SEBlock(in_channels, rd_ratio)