class_docstr: DLA, see https://arxiv.org/pdf/1707.06484.pdf
  
  Args:
      depth (int): DLA depth, only support 34 now.
      residual_root (bool): whether use a reidual layer in the root block
      pre_img (bool): add pre_img, only used in CenterTrack
      pre_hm (bool): add pre_hm, only used in CenterTrack
class_docstr_tok: ["DLA",",","see","https",":","\/\/arxiv.org\/pdf\/1707.06484.pdf","Args",":","depth","(","int",")",":","DLA","depth",",","only","support","34","now",".","residual_root","(","bool",")",":","whether","use","a","reidual","layer","in","the","root","block","pre_img","(","bool",")",":","add","pre_img",",","only","used","in","CenterTrack","pre_hm","(","bool",")",":","add","pre_hm",",","only","used","in","CenterTrack"]
code: def __init__(
      self, depth=34, residual_root=False, pre_img=False, pre_hm=False
  ):
      super(DLA, self).__init__()
      assert depth == 34, "Only support DLA with depth of 34 now."
      if depth == 34:
          block = BasicBlock
      levels, channels = DLA_cfg[depth]
      self.channels = channels
      self.num_levels = len(levels)
  
      self.base_layer = nn.Sequential(
          ConvNormLayer(
              3,
              channels[0],
              filter_size=7,
              stride=1,
              bias_on=False,
              norm_decay=None,
          ),
          nn.ReLU(),
      )
      self.level0 = self._make_conv_level(
          channels[0], channels[0], levels[0]
      )
      self.level1 = self._make_conv_level(
          channels[0], channels[1], levels[1], stride=2
      )
      self.level2 = Tree(
          levels[2],
          block,
          channels[1],
          channels[2],
          2,
          level_root=False,
          root_residual=residual_root,
      )
      self.level3 = Tree(
          levels[3],
          block,
          channels[2],
          channels[3],
          2,
          level_root=True,
          root_residual=residual_root,
      )
      self.level4 = Tree(
          levels[4],
          block,
          channels[3],
          channels[4],
          2,
          level_root=True,
          root_residual=residual_root,
      )
      self.level5 = Tree(
          levels[5],
          block,
          channels[4],
          channels[5],
          2,
          level_root=True,
          root_residual=residual_root,
      )
  
      if pre_img:
          self.pre_img_layer = nn.Sequential(
              ConvNormLayer(
                  3,
                  channels[0],
                  filter_size=7,
                  stride=1,
                  bias_on=False,
                  norm_decay=None,
              ),
              nn.ReLU(),
          )
      if pre_hm:
          self.pre_hm_layer = nn.Sequential(
              ConvNormLayer(
                  1,
                  channels[0],
                  filter_size=7,
                  stride=1,
                  bias_on=False,
                  norm_decay=None,
              ),
              nn.ReLU(),
          )
      self.pre_img = pre_img
      self.pre_hm = pre_hm
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register, serializable
  from ppdet.modeling.layers import ConvNormLayer
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 1 to create a new DLA object from inherited base classes: nn with example: obj = DLA(depth, residual_root, pre_img, pre_hm)