class_docstr: Dynamic Convolution.
class_docstr_tok: ["Dynamic","Convolution","."]
code: def init_weights(self):
      for m in self.dyconvs.modules():
          if isinstance(m, nn.Conv2d):
              nn.init.normal_(m.weight.data, 0, 0.01)
              if m.bias is not None:
                  m.bias.data.zero_()
      if self.attnconv is not None:
          for m in self.attnconv.modules():
              if isinstance(m, nn.Conv2d):
                  nn.init.normal_(m.weight.data, 0, 0.01)
                  if m.bias is not None:
                      m.bias.data.zero_()
  
imports: import copy
  import math
  from typing import Callable, List, Optional, Sequence, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.cnn import Scale
  from mmcv.ops.modulated_deform_conv import ModulatedDeformConv2d
  from mmengine.config import ConfigDict
  from mmengine.model import BaseModel
  from mmengine.structures import InstanceData
  from torch import Tensor
  from mmdet.registry import MODELS
  from mmdet.structures.bbox import cat_boxes
  from mmdet.utils import InstanceList, OptInstanceList, reduce_mean
  from ..utils import BertEncoderLayer, VLFuse, filter_scores_and_topk, permute_and_flatten, select_single_mlvl, unpack_gt_instances
  from ..utils.vlfuse_helper import MAX_CLAMP_VALUE
  from .atss_head import ATSSHead
label_desc: Use image node_id 2 for calling the DyConv obj's underlying member method code with example usage: obj.init_weights() without return types