code: def __call__(self, x, edge_index, size=None, edge_attr=None, **kwarg):
      assert edge_attr is not None
      if not self.built:
          self.build()
      (gather_x,) = self.gather_feature([x], edge_index)
      out = self.apply_edge(gather_x[1], edge_attr)
      out = mp_ops.scatter_(self.aggr, out, edge_index[0], size=size[0])
      out = self.apply_node(x[0], out)
      return out
  
file_path: euler/tf_euler/python/convolution/relation_conv.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  import collections
  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 RelationConv obj's underlying member method code with example usage: obj.__call__(x, edge_index, size, edge_attr) and returns: out