class_docstr: FPN-like feature fusion module in PANet.
  
  Args:
      in_channels (int): Number of input channels.
      init_cfg (dict or list[dict], optional): Initialization configs.
class_docstr_tok: ["FPN-like","feature","fusion","module","in","PANet",".","Args",":","in_channels","(","int",")",":","Number","of","input","channels",".","init_cfg","(","dict","or","list","[","dict","]",",","optional",")",":","Initialization","configs","."]
code: def __init__(
      self,
      in_channels: int = 128,
      init_cfg: Optional[Union[Dict, List[Dict]]] = None,
  ) -> None:
      super().__init__(init_cfg=init_cfg)
      self.up_add1 = SeparableConv2d(in_channels, in_channels, 1)
      self.up_add2 = SeparableConv2d(in_channels, in_channels, 1)
      self.up_add3 = SeparableConv2d(in_channels, in_channels, 1)
      self.down_add1 = SeparableConv2d(in_channels, in_channels, 2)
      self.down_add2 = SeparableConv2d(in_channels, in_channels, 2)
      self.down_add3 = SeparableConv2d(in_channels, in_channels, 2)
  
file_path: mmocr/mmocr/models/textdet/necks/fpem_ffm.py
imports: from typing import Dict, List, Optional, Tuple, Union
  import torch
  import torch.nn.functional
  from mmengine.model import BaseModule, ModuleList
  from torch import nn
  from mmocr.registry import MODELS
label_desc: Use image node_id 1 to create a new FPEM object from inherited base classes: BaseModule with example: obj = FPEM(in_channels, init_cfg)