sntcristian / and-kge

Author Disambiguation using Knowledge Graph Embeddings with Literals
18 stars 4 forks source link

How I want to train the model on other datasets? #1

Closed Alohalt closed 11 months ago

Alohalt commented 1 year ago

Can I know the exact environment in which the previous model was run when it was trained? I'm getting an error from torch when loading the model "distmult.pkl". File "E:\LAND\and-kge-main\src\disambiguation\disambiguation.py", line 206, in <module> cluster_data = cluster_KGEs(model=model, blocks=eval_data, affinity_type="cosine", linkage="single", threshold=0.26) File "E:\LAND\and-kge-main\src\disambiguation\disambiguation.py", line 57, in cluster_KGEs works_embeddings = entity_representation_modules.forward(indices=works_idx).detach().numpy() File "E:\LAND\and-kge-main\pykeen-1.5.0\src\pykeen\nn\emb.py", line 407, in forward if self.dropout is not None: File "D:\Anaconda3\envs\LAND\lib\site-packages\torch\nn\modules\module.py", line 778, in __getattr__ raise ModuleAttributeError("'{}' object has no attribute '{}'".format( torch.nn.modules.module.ModuleAttributeError: 'Embedding' object has no attribute 'dropout'

If I want to train the model on a new dataset, is there any code for that?

sntcristian commented 11 months ago

Hi @Alohalt . Unfortunately this project is not mantained anymore. My advice is to look for libraries for Knowledge Graph Embeddings (KGE) which are mantained, such as PyKEEN and look in the documentation how to run DistMult models with our data. Once you train the model you can modify our scripts on src/disambiguation to cluster the embeddings accordingly.

Best wishes, Cristian