docstr: Squeeze-and-Excitation Networks, see https://arxiv.org/abs/1709.01507
  
  Args:
      depth (int): SENet depth, should be 50, 101, 152
      variant (str): ResNet variant, supports 'a', 'b', 'c', 'd' currently
      lr_mult_list (list): learning rate ratio of different resnet stages(2,3,4,5),
                           lower learning rate ratio is need for pretrained model 
                           got using distillation(default as [1.0, 1.0, 1.0, 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
      freeze_norm (bool): freeze normalization layers
      freeze_at (int): freeze the backbone at which stage
      return_idx (list): index of the stages whose feature maps are returned
      dcn_v2_stages (list): index of stages who select deformable conv v2
      std_senet (bool): whether use senet, default True
      num_stages (int): total num of stages
docstr_tok: ["Squeeze-and-Excitation","Networks",",","see","https",":","\/\/arxiv.org\/abs\/1709.01507","Args",":","depth","(","int",")",":","SENet","depth",",","should","be","50",",","101",",","152","variant","(","str",")",":","ResNet","variant",",","supports","'","a","'",",","'","b","'",",","'","c","'",",","'d","'","currently","lr_mult_list","(","list",")",":","learning","rate","ratio","of","different","resnet","stages","(","2,3,4,5",")",",","lower","learning","rate","ratio","is","need","for","pretrained","model","got","using","distillation","(","default","as","[","1.0",",","1.0",",","1.0",",","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","freeze_norm","(","bool",")",":","freeze","normalization","layers","freeze_at","(","int",")",":","freeze","the","backbone","at","which","stage","return_idx","(","list",")",":","index","of","the","stages","whose","feature","maps","are","returned","dcn_v2_stages","(","list",")",":","index","of","stages","who","select","deformable","conv","v2","std_senet","(","bool",")",":","whether","use","senet",",","default","True","num_stages","(","int",")",":","total","num","of","stages"]
code: def __init__(
      self,
      depth=50,
      variant="b",
      lr_mult_list=[1.0, 1.0, 1.0, 1.0],
      groups=1,
      base_width=64,
      norm_type="bn",
      norm_decay=0,
      freeze_norm=True,
      freeze_at=0,
      return_idx=[0, 1, 2, 3],
      dcn_v2_stages=[-1],
      std_senet=True,
      num_stages=4,
  ):
      """
      Squeeze-and-Excitation Networks, see https://arxiv.org/abs/1709.01507
  
      Args:
          depth (int): SENet depth, should be 50, 101, 152
          variant (str): ResNet variant, supports 'a', 'b', 'c', 'd' currently
          lr_mult_list (list): learning rate ratio of different resnet stages(2,3,4,5),
                               lower learning rate ratio is need for pretrained model
                               got using distillation(default as [1.0, 1.0, 1.0, 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
          freeze_norm (bool): freeze normalization layers
          freeze_at (int): freeze the backbone at which stage
          return_idx (list): index of the stages whose feature maps are returned
          dcn_v2_stages (list): index of stages who select deformable conv v2
          std_senet (bool): whether use senet, default True
          num_stages (int): total num of stages
      """
  
      super(SENet, self).__init__(
          depth=depth,
          variant=variant,
          lr_mult_list=lr_mult_list,
          ch_in=128,
          groups=groups,
          base_width=base_width,
          norm_type=norm_type,
          norm_decay=norm_decay,
          freeze_norm=freeze_norm,
          freeze_at=freeze_at,
          return_idx=return_idx,
          dcn_v2_stages=dcn_v2_stages,
          std_senet=std_senet,
          num_stages=num_stages,
      )
  
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 SENet object from inherited base classes: ResNet with example: obj = SENet(depth, variant, lr_mult_list, groups, base_width, norm_type, norm_decay, freeze_norm, freeze_at, return_idx, dcn_v2_stages, std_senet, num_stages)