code: def apply_edge(self, edge_index_i, x_j, norm_i, norm_j, num_nodes):
      alpha = tf.reduce_sum(
          self.beta * (norm_i * norm_j), axis=-1, keep_dims=True
      )
      alpha = mp_ops.scatter_softmax(alpha, edge_index_i, num_nodes)
      return x_j * tf.reshape(alpha, [-1, 1])
  
file_path: euler/tf_euler/python/convolution/agnn_conv.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  from tf_euler.python.convolution import conv
  from tf_euler.python.euler_ops import mp_ops
label_desc: Use image node_id 3 for calling the AGNNConv obj's underlying member method code with example usage: obj.apply_edge(edge_index_i, x_j, norm_i, norm_j, num_nodes) and returns: unknown