code: def SageConv(self, gw, feature, name, hidden_size, act):
      message = gw.send(
          self.send_func,
          nfeat_list=[("node_feat", feature)],
          efeat_list=None,
      )
      neighbor_feat = gw.recv(message, self.recv_func)
      neighbor_feat = fluid.layers.fc(
          neighbor_feat, hidden_size, act=None, name=name + "_n"
      )
      self_feature = fluid.layers.fc(
          feature, hidden_size, act=None, name=name + "_s"
      )
      output = self_feature + neighbor_feat
      # output = fluid.layers.concat([self_feature, neighbor_feat], axis=1)
      output = fluid.layers.l2_normalize(output, axis=1)
      if act is not None:
          ouput = L.relu(output)
      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 3 for calling the GraphSageModel obj's underlying member method code with example usage: obj.SageConv(gw, feature, name, hidden_size, act) and returns: output