class_docstr: Transfer vis graph to class node, transfer class node to vis feature
code: def forward(
      self, word: paddle.Tensor, vis_node: paddle.Tensor
  ) -> List[paddle.Tensor]:
      m_batchsize, C, Nc = word.shape
      m_batchsize, C, Nn = vis_node.shape
  
      proj_query = (
          self.query_conv(word)
          .reshape((m_batchsize, -1, Nc))
          .transpose((0, 2, 1))
      )
      proj_key = self.key_conv(vis_node).reshape((m_batchsize, -1, Nn))
  
      energy = paddle.bmm(proj_query, proj_key)
      attention_vis = self.softmax_vis(energy).transpose((0, 2, 1))
      attention_word = self.softmax_word(energy)
  
      proj_value_vis = self.value_conv_vis(vis_node).reshape(
          (m_batchsize, -1, Nn)
      )
      proj_value_word = self.value_conv_word(word).reshape(
          (m_batchsize, -1, Nc)
      )
  
      class_out = paddle.bmm(proj_value_vis, attention_vis)
      node_out = paddle.bmm(proj_value_word, attention_word)
      return class_out, node_out
  
imports: import os
  from typing import Union, List, Tuple
  import paddle
  from paddle import nn
  import paddle.nn.functional
  import numpy
  from paddlehub.module.module import moduleinfo
  import paddlehub.vision.segmentation_transforms
  from paddlehub.module.cv_module import ImageSegmentationModule
  from paddleseg.utils import utils
  from paddleseg.models import layers
  from ginet_resnet50vd_cityscapes.resnet import ResNet50_vd
label_desc: Use image node_id 2 for calling the GraphTransfer obj's underlying member method code with example usage: obj.forward(word, vis_node) and returns: class_out,  node_out