class_docstr: Channel Mapper to reduce/increase channels of backbone features.
  
  This is used to reduce/increase channels of backbone features.
  
  Args:
      in_channels (List[int]): Number of input channels per scale.
      out_channels (int): Number of output channels (used at each scale).
      kernel_size (int, optional): kernel_size for reducing channels (used
          at each scale). Default: 3.
      conv_cfg (dict, optional): Config dict for convolution layer.
          Default: None.
      norm_cfg (dict, optional): Config dict for normalization layer.
          Default: None.
      act_cfg (dict, optional): Config dict for activation layer in
          ConvModule. Default: dict(type='ReLU').
      num_outs (int, optional): Number of output feature maps. There
          would be extra_convs when num_outs larger than the length
          of in_channels.
      init_cfg (dict or list[dict], optional): Initialization config dict.
      
class_docstr_tok: ["Channel","Mapper","to","reduce\/increase","channels","of","backbone","features",".","This","is","used","to","reduce\/increase","channels","of","backbone","features",".","Args",":","in_channels","(","List","[","int","]",")",":","Number","of","input","channels","per","scale",".","out_channels","(","int",")",":","Number","of","output","channels","(","used","at","each","scale",")",".","kernel_size","(","int",",","optional",")",":","kernel_size","for","reducing","channels","(","used","at","each","scale",")",".","Default",":","3.","conv_cfg","(","dict",",","optional",")",":","Config","dict","for","convolution","layer",".","Default",":","None",".","norm_cfg","(","dict",",","optional",")",":","Config","dict","for","normalization","layer",".","Default",":","None",".","act_cfg","(","dict",",","optional",")",":","Config","dict","for","activation","layer","in","ConvModule",".","Default",":","dict","(","type='ReLU","'",")",".","num_outs","(","int",",","optional",")",":","Number","of","output","feature","maps",".","There","would","be","extra_convs","when","num_outs","larger","than","the","length","of","in_channels",".","init_cfg","(","dict","or","list","[","dict","]",",","optional",")",":","Initialization","config","dict","."]
docstr: Forward function.
docstr_tok: ["Forward","function","."]
code: def forward(self, inputs):
      """Forward function."""
      assert len(inputs) == len(self.convs)
      outs = [self.convs[i](inputs[i]) for i in range(len(inputs))]
      if self.extra_convs:
          for i in range(len(self.extra_convs)):
              if i == 0:
                  outs.append(self.extra_convs[0](inputs[-1]))
              else:
                  outs.append(self.extra_convs[i](outs[-1]))
      return tuple(outs)
  
file_path: PaddleDetection/ppdet/modeling/necks/channel_mapper.py
imports: import paddle.nn
  from ppdet.core.workspace import register, serializable
  from ..backbones.hrnet import ConvNormLayer
  from ..shape_spec import ShapeSpec
  from ..initializer import xavier_uniform_, constant_
label_desc: Use image node_id 2 for calling the ChannelMapper obj's underlying member method code with example usage: obj.forward(inputs) and returns: tuple