code: def forward(self, param_feature, input_feature):
      input_feature = input_feature.flatten(2).transpose([2, 0, 1])
      input_feature = input_feature.transpose([1, 0, 2])
  
      parameters = self.dynamic_layer(param_feature)
  
      param_in = parameters[:, : self.num_params_in].reshape(
          [-1, self.in_channels, self.feature_channels]
      )
      param_out = parameters[:, -self.num_params_out :].reshape(
          [-1, self.feature_channels, self.out_channels]
      )
  
      features = paddle.bmm(input_feature, param_in)
      features = self.norm_in(features)
      features = self.activation(features)
  
      features = paddle.bmm(features, param_out)
      features = self.norm_out(features)
      features = self.activation(features)
  
      if self.with_proj:
          features = features.flatten(1)
          features = self.fc_layer(features)
          features = self.fc_norm(features)
          features = self.activation(features)
  
      return features
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import paddle
  from paddle import nn
  from ppdet.core.workspace import register
  from ppdet.modeling import initializer
  from .roi_extractor import RoIAlign
  from ..bbox_utils import delta2bbox_v2
  from ..cls_utils import _get_class_default_kwargs
  from ..layers import MultiHeadAttention
label_desc: Use image node_id 2 for calling the DynamicConv obj's underlying member method code with example usage: obj.forward(param_feature, input_feature) and returns: features