code: def __call__(self, inputs, label=None, graph_index=None):
      if isinstance(inputs, dict):
          label = inputs["graph_label"]
          graph_index = inputs["node_graph_idx"]
          inputs = inputs["node_idx"]
      assert label is not None or graph_index is not None
      graph_index = tf.cast(graph_index, tf.int32)
      embedding = self.embed(inputs, graph_index)
      logit = self.out_fc(embedding)
      label = tf.cast(label, tf.float32)
  
      _, acc = tf.metrics.accuracy(
          label, tf.floor(tf.nn.sigmoid(logit) + 0.5)
      )
      loss = tf.nn.sigmoid_cross_entropy_with_logits(
          labels=label, logits=logit
      )
      loss = tf.reduce_mean(loss)
      return (embedding, loss, "accuracy", acc)
  
file_path: euler/tf_euler/python/mp_utils/base_graph.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  import tf_euler
label_desc: Use image node_id 3 for calling the GraphModel obj's underlying member method code with example usage: obj.__call__(inputs, label, graph_index) and returns: embedding,  loss,  str,  acc