OpenKE-PyTorch使用
知识嵌入库OpenKE-Pytorch的使用
相关链接
使用pytorch实现的知识嵌入开源框架
github链接 OpenKE-Pytorch
官网链接 OpenKE
简单介绍
这是一个基于PyTorch的知识表示学习(KRL)的高效实现。我们使用C++来实现一些底层操作,如数据预处理和负采样。对于每个特定的模型,它是由PyTorch与Python接口实现的,因此有一个方便的平台可以在GPU上运行模型。OpenKE由4个存储库组成
-
OpenKE-PyTorch:基于PyTorch的项目,它为知识图谱嵌入模型提供了优化和稳定的框架。
-
OpenKE-Tensorflow1.0。用TensorFlow实现的OpenKE,同样为知识图谱嵌入模型提供了优化和稳定的框架。
-
TensorFlow-TransX:基于TensorFlow的轻量级和简单版本的OpenKE,包括TransE、TransH、TransR和TransD。
-
Fast-TransX:利用OpenKE的框架对TransE及其扩展模型进行高效的轻量级C++推理,包括TransH、TransR、TransD、TranSparse和PTransE。
模型
截至2021.11支持如下的嵌入模型:
OpenKE (PyTorch):
- RESCAL
- DistMult, ComplEx, Analogy
- TransE, TransH, TransR, TransD
- SimplE
- RotatE
安装方式
这里使用openke-pytorch版本
- 下载pytorch
- Clone OPenKE-Pytorch部分
git clone -b OpenKE-PyTorch https://github.com/thunlp/OpenKE --depth 1
cd OpenKE
cd openke
注意事项
这里git clone可能遇到 Failed connect to github.com:443; Connection timed out 的问题, 属于是gihub访问原因,我参考了网上各种修改代理的方法均失败,最终我的方法是把github同步到国内的码云,然后git clone中的https地址改成码云的。
如果是permission denied问题那是文件夹没有给写权限,不信你可以试试mkdir一个文件夹保证也是失败。解决手段就是赋予写权限.
数据集说明
训练集
entity2id.txt
首行是接下来的行数
接下来每行一个(实体, id)二元组
relation2id.txt
首行是接下来的行数
接下来每行一个(关系, id)二元组
train2id.txt
首行是接下来的行数
接下来每行一个(实体id, 实体id, 关系id)三元组
测试集
test2id.txt
首行是接下来的行数
接下来每行一个(实体id, 实体id, 关系id)三元组
验证集
valid2id.txt
首行是接下来的行数
接下来每行一个(实体id, 实体id, 关系id)三元组
快速测试
cd ../
cp examples/train_transe_FB15K237.py ./
python train_transe_FB15K237.py
注意事项
如果训练开始遇到GPU显存不够的情况请自行指定GPU,具体可搜索解决方法。
如果训练完毕遇到FileNotFoundError: [Errno 2] No such file or director: "xxx",自行建立对应的目录