dicee.models.pykeen_models ========================== .. py:module:: dicee.models.pykeen_models Classes ------- .. autoapisummary:: dicee.models.pykeen_models.PykeenKGE Module Contents --------------- .. py:class:: PykeenKGE(args: dict) Bases: :py:obj:`dicee.models.base_model.BaseKGE` A class for using knowledge graph embedding models implemented in Pykeen Notes: Pykeen_DistMult: C Pykeen_ComplEx: Pykeen_QuatE: Pykeen_MuRE: Pykeen_CP: Pykeen_HolE: Pykeen_HolE: Pykeen_HolE: Pykeen_TransD: Pykeen_TransE: Pykeen_TransF: Pykeen_TransH: Pykeen_TransR: .. py:attribute:: model_kwargs .. py:attribute:: name .. py:attribute:: model .. py:attribute:: loss_history :value: [] .. py:attribute:: args .. py:attribute:: entity_embeddings :value: None .. py:attribute:: relation_embeddings :value: None .. py:method:: forward_k_vs_all(x: torch.LongTensor) # => Explicit version by this we can apply bn and dropout # (1) Retrieve embeddings of heads and relations + apply Dropout & Normalization if given. h, r = self.get_head_relation_representation(x) # (2) Reshape (1). if self.last_dim > 0: h = h.reshape(len(x), self.embedding_dim, self.last_dim) r = r.reshape(len(x), self.embedding_dim, self.last_dim) # (3) Reshape all entities. if self.last_dim > 0: t = self.entity_embeddings.weight.reshape(self.num_entities, self.embedding_dim, self.last_dim) else: t = self.entity_embeddings.weight # (4) Call the score_t from interactions to generate triple scores. return self.interaction.score_t(h=h, r=r, all_entities=t, slice_size=1) .. py:method:: forward_triples(x: torch.LongTensor) -> torch.FloatTensor # => Explicit version by this we can apply bn and dropout # (1) Retrieve embeddings of heads, relations and tails and apply Dropout & Normalization if given. h, r, t = self.get_triple_representation(x) # (2) Reshape (1). if self.last_dim > 0: h = h.reshape(len(x), self.embedding_dim, self.last_dim) r = r.reshape(len(x), self.embedding_dim, self.last_dim) t = t.reshape(len(x), self.embedding_dim, self.last_dim) # (3) Compute the triple score return self.interaction.score(h=h, r=r, t=t, slice_size=None, slice_dim=0) .. py:method:: forward_k_vs_sample(x: torch.LongTensor, target_entity_idx) :abstractmethod: