code: def generate_triplets(self, inputs):
      batch_size = tf.shape(inputs)[0]
      src, dst, _ = tf.split(inputs, [1, 1, 1], axis=1)
      rel = tf_euler.get_edge_dense_feature(inputs, ["id"], [1])
      rel = tf.cast(rel, tf.int64)
      neg = self.generate_negative(batch_size)
      src = tf.reshape(src, [batch_size, 1])
      dst = tf.reshape(dst, [batch_size, 1])
      neg = tf.reshape(neg, [batch_size, self.num_negs])
      rel = tf.reshape(rel, [batch_size, 1])
      return src, dst, neg, rel
  
file_path: euler/examples/distmult/distmult.py
imports: import tensorflow
  import tf_euler
  import collections
label_desc: Use image node_id 3 for calling the DistMult obj's underlying member method code with example usage: obj.generate_triplets(inputs) and returns: src,  dst,  neg,  rel