docstr: SERes5Head layer
  
  Args:
      depth (int): SENet depth, should be 50, 101, 152
      variant (str): ResNet variant, supports 'a', 'b', 'c', 'd' currently
      lr_mult (list): learning rate ratio of SERes5Head, default as 1.0.
      groups (int): group convolution cardinality
      base_width (int): base width of each group convolution
      norm_type (str): normalization type, 'bn', 'sync_bn' or 'affine_channel'
      norm_decay (float): weight decay for normalization layer weights
      dcn_v2_stages (list): index of stages who select deformable conv v2
      std_senet (bool): whether use senet, default True
      
docstr_tok: ["SERes5Head","layer","Args",":","depth","(","int",")",":","SENet","depth",",","should","be","50",",","101",",","152","variant","(","str",")",":","ResNet","variant",",","supports","'","a","'",",","'","b","'",",","'","c","'",",","'d","'","currently","lr_mult","(","list",")",":","learning","rate","ratio","of","SERes5Head",",","default","as","1.0.","groups","(","int",")",":","group","convolution","cardinality","base_width","(","int",")",":","base","width","of","each","group","convolution","norm_type","(","str",")",":","normalization","type",",","'bn","'",",","'sync_bn","'","or","'affine_channel'","norm_decay","(","float",")",":","weight","decay","for","normalization","layer","weights","dcn_v2_stages","(","list",")",":","index","of","stages","who","select","deformable","conv","v2","std_senet","(","bool",")",":","whether","use","senet",",","default","True"]
code: def __init__(
      self,
      depth=50,
      variant="b",
      lr_mult=1.0,
      groups=1,
      base_width=64,
      norm_type="bn",
      norm_decay=0,
      dcn_v2=False,
      freeze_norm=False,
      std_senet=True,
  ):
      """
      SERes5Head layer
  
      Args:
          depth (int): SENet depth, should be 50, 101, 152
          variant (str): ResNet variant, supports 'a', 'b', 'c', 'd' currently
          lr_mult (list): learning rate ratio of SERes5Head, default as 1.0.
          groups (int): group convolution cardinality
          base_width (int): base width of each group convolution
          norm_type (str): normalization type, 'bn', 'sync_bn' or 'affine_channel'
          norm_decay (float): weight decay for normalization layer weights
          dcn_v2_stages (list): index of stages who select deformable conv v2
          std_senet (bool): whether use senet, default True
  
      """
      super(SERes5Head, self).__init__()
      ch_out = 512
      ch_in = 256 if depth < 50 else 1024
      na = NameAdapter(self)
      block = BottleNeck if depth >= 50 else BasicBlock
      self.res5 = Blocks(
          block,
          ch_in,
          ch_out,
          count=3,
          name_adapter=na,
          stage_num=5,
          variant=variant,
          groups=groups,
          base_width=base_width,
          lr=lr_mult,
          norm_type=norm_type,
          norm_decay=norm_decay,
          freeze_norm=freeze_norm,
          dcn_v2=dcn_v2,
          std_senet=std_senet,
      )
      self.ch_out = ch_out * block.expansion
  
file_path: PaddleDetection/ppdet/modeling/backbones/senet.py
imports: import paddle.nn
  from ppdet.core.workspace import register, serializable
  from .resnet import ResNet, Blocks, BasicBlock, BottleNeck
  from ..shape_spec import ShapeSpec
  from .name_adapter import NameAdapter
label_desc: Use image node_id 1 to create a new SERes5Head object from inherited base classes: nn with example: obj = SERes5Head(depth, variant, lr_mult, groups, base_width, norm_type, norm_decay, dcn_v2, freeze_norm, std_senet)