KG-embedding transR/transE OpenKE python实现

要用一下transR的python代码实现,想在网上找一下源码,下面记录一下过程。

试过pykg2vec和pykeen这两个第三方库,但是本人小白,感觉用不来这两个工具,而且网上的技术文档也不多,可能适合有一定深度学习代码经验的人来用。目前选择了openKE这个开源工具包。下面是这个openke的官网和github地址。

http://nlp.csai.tsinghua.edu.cn/project/openke/

https://github.com/thunlp/OpenKE

OpenKE是THUNLP基于TensorFlow、PyTorch开发的用于将知识图谱嵌入到低维连续向量空间进行表示的开源框架。OpenKE提供了快速且稳定的各类接口,也实现了诸多经典的知识表示学习模型。

对于我来说,openKE不仅提供了transR模型的代码,更重要的是它提供了各种模型训练过程的实例,对于DL小白来说,手写训练过程还是有点困难的。

然后我的环境是:win10、python==3.7、tensorflow==2.4.0、torch==1.13.1+cull7(GPU版)、numpy==1.19.5、显卡Geforce GTX 1080、cuda==11.7.101

在我这个环境下,使用这个代码需要修改一下:

trainDataLoader.py,line105-108:把int64位换成32位

testDataLoader.py,line70:同样把64位换成32位

不改的话会报错IndexError: index out of range in self。因为openKE是调用了C++的.so接口,应该是底层的数据存储不一致导致的。我调试的时候分别打印了python端和C++端的变量地址和二进制码

再有就是根据自己的显存大小需要调整batchSize和threadsNum,不然可能会报错out of memory

整体来说这个代码对于小白很友好,不需要做太多调整。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值