class_docstr: Combine the Extractor, Extractor and ViT Blocks.
code: def forward(self, x, c, blocks, deform_inputs1, deform_inputs2, H, W):
      x = self.injector(
          query=x,
          reference_points=deform_inputs1[0],
          feat=c,
          spatial_shapes=deform_inputs1[1],
          level_start_index=deform_inputs1[2],
      )
  
      for _, blk in enumerate(blocks):
          x = blk(x, H, W)
  
      c = self.extractor(
          query=c,
          reference_points=deform_inputs2[0],
          feat=x,
          spatial_shapes=deform_inputs2[1],
          level_start_index=deform_inputs2[2],
          H=H,
          W=W,
      )
  
      if self.extra_extractors is not None:
          for extractor in self.extra_extractors:
              c = extractor(
                  query=c,
                  reference_points=deform_inputs2[0],
                  feat=x,
                  spatial_shapes=deform_inputs2[1],
                  level_start_index=deform_inputs2[2],
                  H=H,
                  W=W,
              )
  
      return x, c
  
imports: import math
  import warnings
  from functools import partial
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models.backbones.transformer_utils import DropPath
  from paddleseg.models.layers.ms_deformable_attention import MSDeformAttn
label_desc: Use image node_id 2 for calling the InteractionBlock obj's underlying member method code with example usage: obj.forward(x, c, blocks, deform_inputs1, deform_inputs2, H, W) and returns: x,  c