class_docstr: An abstract base class for implementing custom KGE models.
  
  Args:
      num_nodes (int): The number of nodes/entities in the graph.
      num_relations (int): The number of relations in the graph.
      hidden_channels (int): The hidden embedding size.
      sparse (bool, optional): If set to :obj:`True`, gradients w.r.t. to the
          embedding matrices will be sparse. (default: :obj:`False`)
docstr: Returns the score for the given triplet.
  
  Args:
      head_index (torch.Tensor): The head indices.
      rel_type (torch.Tensor): The relation type.
      tail_index (torch.Tensor): The tail indices.
docstr_tok: ["Returns","the","score","for","the","given","triplet",".","Args",":","head_index","(","torch.Tensor",")",":","The","head","indices",".","rel_type","(","torch.Tensor",")",":","The","relation","type",".","tail_index","(","torch.Tensor",")",":","The","tail","indices","."]
code: def forward(
      self,
      head_index: Tensor,
      rel_type: Tensor,
      tail_index: Tensor,
  ) -> Tensor:
      r"""Returns the score for the given triplet.
  
      Args:
          head_index (torch.Tensor): The head indices.
          rel_type (torch.Tensor): The relation type.
          tail_index (torch.Tensor): The tail indices.
      """
      raise NotImplementedError
  
file_path: pytorch_geometric/torch_geometric/nn/kge/base.py
imports: from typing import Tuple
  import torch
  from torch import Tensor
  from torch.nn import Embedding
  from tqdm import tqdm
  from torch_geometric.nn.kge.loader import KGTripletLoader
label_desc: Use image node_id 3 for calling the KGEModel obj's underlying member method code with example usage: obj.forward(head_index, rel_type, tail_index) without return types