class_docstr: Complex embeddings with Euclidean rotations.
class_docstr_tok: ["Complex","embeddings","with","Euclidean","rotations","."]
code: def get_queries(self, input_tensor):
      lhs = self.entity(input_tensor[:, 0])
      rel = self.rel(input_tensor[:, 1])
      lhs = lhs[:, : self.half_rank], lhs[:, self.half_rank :]
      rel = rel[:, : self.half_rank], rel[:, self.half_rank :]
  
      rel_norm = tf.sqrt(rel[0] ** 2 + rel[1] ** 2)
      cos = tf.math.divide_no_nan(rel[0], rel_norm)
      sin = tf.math.divide_no_nan(rel[1], rel_norm)
  
      return tf.concat(
          [lhs[0] * cos - lhs[1] * sin, lhs[0] * sin + lhs[1] * cos],
          axis=1,
      )
  
file_path: neural-structured-learning/research/kg_hyp_emb/models/complex.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from kg_hyp_emb.models.base import KGModel
  import tensorflow
label_desc: Use image node_id 1 for calling the RotatE obj's underlying member method code with example usage: obj.get_queries(input_tensor) and returns: tf