uma-pi1 / kge

LibKGE - A knowledge graph embedding library for reproducible research
MIT License
765 stars 124 forks source link

KeyError: 'relation_ids' when loading pretrained checkpoints #245

Closed jwzhi closed 2 years ago

jwzhi commented 2 years ago

Hi,

I want to load the pretrained checkpoints you provided for fb15k-237. But I am getting the keyerror when loading it. Not sure why and how to solve it.

There is a short piece of code

import torch
from kge.model import KgeModel
from kge.util.io import load_checkpoint
# from dataset import Data
import torch.nn as nn
import torch.nn.functional as f
from accelerate import Accelerator

import argparse
import pdb

distmult_ckpt = load_checkpoint('fb15k-237-distmult.pt')
distmult_model = KgeModel.create_from(distmult_ckpt)

And the error I am getting is

Loading configuration of dataset fb15k-237 from /datadrive/data/KG-GNN/kge/data/fb15k-237 ...
Failed to create model reciprocal_relations_model (class ReciprocalRelationsModel).
Traceback (most recent call last):
  File "ensemble.py", line 13, in <module>
    distmult_model = KgeModel.create_from(distmult_ckpt)
  File "/datadrive/data/KG-GNN/kge/kge/model/kge_model.py", line 582, in create_from
    model = KgeModel.create(config, dataset, init_for_load_only=True)
  File "/datadrive/data/KG-GNN/kge/kge/model/kge_model.py", line 497, in create
    init_for_load_only=init_for_load_only,
  File "/datadrive/data/KG-GNN/kge/kge/misc.py", line 38, in init_from
    return getattr(module, class_name)(*args, **kwargs)
  File "/datadrive/data/KG-GNN/kge/kge/model/reciprocal_relations_model.py", line 30, in __init__
    alt_dataset._meta["relation_ids"] = dataset._meta["relation_ids"].copy()
KeyError: 'relation_ids'
AdrianKs commented 2 years ago

Thanks for reporting, I am going to look into this. I suspect this is coming from a change we did for initializing with a pretrained model.

AdrianKs commented 2 years ago

fixed with 30541c04541c34c917b67e06104c757cf776594f