code: def __init__(
      self,
      in_channels,
      num_classes,
      num_groups=4,
      ins_dim=256,
      ins_conv=4,
      mask_dim=256,
      mask_conv=4,
      kernel_dim=128,
      scale_factor=2.0,
      output_iam=False,
      num_masks=100,
      act_cfg=dict(type="ReLU", inplace=True),
  ):
      super().__init__(
          in_channels=in_channels,
          num_classes=num_classes,
          ins_dim=ins_dim,
          ins_conv=ins_conv,
          mask_dim=mask_dim,
          mask_conv=mask_conv,
          kernel_dim=kernel_dim,
          scale_factor=scale_factor,
          output_iam=output_iam,
          num_masks=num_masks,
          act_cfg=act_cfg,
      )
      self.inst_branch = GroupInstanceSoftBranch(
          in_channels,
          num_groups=num_groups,
          dim=ins_dim,
          num_convs=ins_conv,
          num_masks=num_masks,
          num_classes=num_classes,
          kernel_dim=kernel_dim,
          act_cfg=act_cfg,
      )
  
imports: import math
  import torch
  import torch.nn
  import torch.nn.functional
  from mmengine.model.weight_init import caffe2_xavier_init, kaiming_init
  from torch.nn import init
  from mmdet.registry import MODELS
label_desc: Use image node_id 1 to create a new GroupIAMSoftDecoder object from inherited base classes: BaseIAMDecoder with example: obj = GroupIAMSoftDecoder(in_channels, num_classes, num_groups, ins_dim, ins_conv, mask_dim, mask_conv, kernel_dim, scale_factor, output_iam, num_masks, act_cfg)