从github上拉下来OpenKE但是在运行transE的时候报错:
TypeError: iter() returned non-iterator of type ‘TrainDataSampler’
解决方法:
1 检查一下你的python版本是否为3.0以上,在python3.0中迭代器的规则发生了一些变化。在新的迭代器规则中,迭代器对象应该实现__next__方法,而不是next,而2.7版本还是next,如果你的版本是2.7(2.几)继续往下看
2 在OpenKE/openke/data/TrainDataLoader.py中可以看到用的是新的规则
在下面加上即可解决问题
def next(self):
return self.__next__()