code: def recv_func(self, message):
      dst_feat = message["dst_node_feat"]
      src_feat = message["src_node_feat"]
      x = fluid.layers.sequence_pool(dst_feat, "average")
      z = fluid.layers.sequence_pool(src_feat, "average")
  
      feat_gate = message["feat_gate"]
      g_max = fluid.layers.sequence_pool(feat_gate, "max")
  
      g = fluid.layers.concat([x, g_max, z], axis=1)
      g = fluid.layers.fc(g, self.heads, bias_attr=False, act="sigmoid")
  
      # softmax
      alpha = message["alpha"]
      alpha = paddle_helper.sequence_softmax(alpha)  # E * M
  
      feat_value = message["feat_value"]  # E * (M * D2)
      old = feat_value
      feat_value = fluid.layers.reshape(
          feat_value, [-1, self.heads, self.hidden_size_v]
      )  # E * M * D2
      feat_value = fluid.layers.elementwise_mul(
          feat_value, alpha, axis=0
      )
      feat_value = fluid.layers.reshape(
          feat_value, [-1, self.heads * self.hidden_size_v]
      )  # E * (M * D2)
      feat_value = fluid.layers.lod_reset(feat_value, old)
  
      feat_value = fluid.layers.sequence_pool(
          feat_value, "sum"
      )  # N * (M * D2)
      feat_value = fluid.layers.reshape(
          feat_value, [-1, self.heads, self.hidden_size_v]
      )  # N * M * D2
      output = fluid.layers.elementwise_mul(feat_value, g, axis=0)
      output = fluid.layers.reshape(
          output, [-1, self.heads * self.hidden_size_v]
      )  # N * (M * D2)
      output = fluid.layers.concat([x, output], axis=1)
  
      return output
  
imports: import os
  import re
  import time
  from random import random
  from functools import reduce, partial
  import numpy
  import multiprocessing
  import paddle
  import paddle.fluid
  import paddle.fluid
  import paddle.fluid.layers
  from pgl.graph_wrapper import GraphWrapper
  from pgl.layers.conv import gcn, gat
  from pgl.utils import paddle_helper
label_desc: Use image node_id 5 for calling the GaANModel obj's underlying member method code with example usage: obj.recv_func(message) and returns: output