class_docstr: This code is based on
  https://github.com/fcjian/TOOD/blob/master/mmdet/models/dense_heads/tood_head.py
class_docstr_tok: ["This","code","is","based","on","https",":","\/\/github.com\/fcjian\/TOOD\/blob\/master\/mmdet\/models\/dense_heads\/tood_head.py"]
code: def __init__(
      self,
      feat_channels,
      stacked_convs,
      la_down_rate=8,
      norm_type="gn",
      norm_groups=32,
  ):
      super(TaskDecomposition, self).__init__()
      self.feat_channels = feat_channels
      self.stacked_convs = stacked_convs
      self.norm_type = norm_type
      self.norm_groups = norm_groups
      self.in_channels = self.feat_channels * self.stacked_convs
      self.la_conv1 = nn.Conv2D(
          self.in_channels, self.in_channels // la_down_rate, 1
      )
      self.la_conv2 = nn.Conv2D(
          self.in_channels // la_down_rate, self.stacked_convs, 1
      )
  
      self.reduction_conv = ConvNormLayer(
          self.in_channels,
          self.feat_channels,
          filter_size=1,
          stride=1,
          norm_type=self.norm_type,
          norm_groups=self.norm_groups,
      )
  
      self._init_weights()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.nn.initializer import Constant
  from ppdet.core.workspace import register
  from ..initializer import normal_, constant_, bias_init_with_prob
  from ppdet.modeling.bbox_utils import bbox_center, batch_distance2bbox
  from ..losses import GIoULoss
  from ppdet.modeling.layers import ConvNormLayer
  from ppdet.modeling.ops import get_static_shape
  from ppdet.modeling.assigners.utils import generate_anchors_for_grid_cell
label_desc: Use image node_id 1 to create a new TaskDecomposition object from inherited base classes: nn with example: obj = TaskDecomposition(feat_channels, stacked_convs, la_down_rate, norm_type, norm_groups)