class_docstr: Spatial Attention module in Real-Time Scene Text Detection with
  Differentiable Binarization and Adaptive Scale Fusion.
  
  This was partially adapted from https://github.com/MhLiao/DB
  
  Args:
      in_channels (int): A numbers of input channels.
      c_wise_channels (int): Number of channel-wise attention channels.
      out_channels (int): Number of output channels.
      init_cfg (dict or list[dict], optional): Initialization configs.
class_docstr_tok: ["Spatial","Attention","module","in","Real-Time","Scene","Text","Detection","with","Differentiable","Binarization","and","Adaptive","Scale","Fusion",".","This","was","partially","adapted","from","https",":","\/\/github.com\/MhLiao\/DB","Args",":","in_channels","(","int",")",":","A","numbers","of","input","channels",".","c_wise_channels","(","int",")",":","Number","of","channel-wise","attention","channels",".","out_channels","(","int",")",":","Number","of","output","channels",".","init_cfg","(","dict","or","list","[","dict","]",",","optional",")",":","Initialization","configs","."]
docstr: Args:
      inputs (Tensor): A concat FPN feature tensor that has the shape of
          :math:`(N, C, H, W)`.
  
  Returns:
      Tensor: An attention map of shape :math:`(N, C_{out}, H, W)`
      where :math:`C_{out}` is ``out_channels``.
docstr_tok: ["Args",":","inputs","(","Tensor",")",":","A","concat","FPN","feature","tensor","that","has","the","shape","of",":","math",":","`","(","N",",","C",",","H",",","W",")","`",".","Returns",":","Tensor",":","An","attention","map","of","shape",":","math",":","`","(","N",",","C_","{","out","}",",","H",",","W",")","`","where",":","math",":","`","C_","{","out","}","`","is","``","out_channels","``","."]
code: def forward(self, inputs: torch.Tensor) -> torch.Tensor:
      """
      Args:
          inputs (Tensor): A concat FPN feature tensor that has the shape of
              :math:`(N, C, H, W)`.
  
      Returns:
          Tensor: An attention map of shape :math:`(N, C_{out}, H, W)`
          where :math:`C_{out}` is ``out_channels``.
      """
      out = self.avg_pool(inputs)
      out = self.channel_wise(out)
      out = out + inputs
      inputs = torch.mean(out, dim=1, keepdim=True)
      out = self.spatial_wise(inputs) + out
      out = self.attention_wise(out)
  
      return out
  
file_path: mmocr/mmocr/models/textdet/necks/fpn_cat.py
imports: from typing import Dict, List, Optional, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.cnn import ConvModule
  from mmengine.model import BaseModule, ModuleList, Sequential
  from mmocr.registry import MODELS
label_desc: Use image node_id 2 for calling the ScaleChannelSpatialAttention obj's underlying member method code with example usage: obj.forward(inputs) and returns: out