code: def forward(self, data):
      batch_h = data["batch_h"]
      batch_t = data["batch_t"]
      batch_r = data["batch_r"]
      h_re = self.ent_re_embeddings(batch_h)
      h_im = self.ent_im_embeddings(batch_h)
      h = self.ent_embeddings(batch_h)
      t_re = self.ent_re_embeddings(batch_t)
      t_im = self.ent_im_embeddings(batch_t)
      t = self.ent_embeddings(batch_t)
      r_re = self.rel_re_embeddings(batch_r)
      r_im = self.rel_im_embeddings(batch_r)
      r = self.rel_embeddings(batch_r)
      score = self._calc(h_re, h_im, h, t_re, t_im, t, r_re, r_im, r)
      return score
  
file_path: OpenKE/openke/module/model/Analogy.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from .Model import Model
label_desc: Use image node_id 3 for calling the Analogy obj's underlying member method code with example usage: obj.forward(data) and returns: score