知識嵌入庫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",自行建立對應的目錄
