Closed zhongpeixiang closed 4 years ago
It's a problem of our implementation for validation and testing process. We calculate the scores with GPU, but do the validation and testing part with C code using CPU. It's much faster on common datasets like FB15K237. But it seems that the approach is not suitable for large datasets ConceptNet.
The easiest way that you can try is to open more threads by set_work_threads
method. It's not the best way, but at least it will speed up the validation and testing process.
It seems that when I run test_transH.py
with use_gpu=True
, the multi-threading does work.
Dear ZhongPeixiang: Does the result(hit@1, hit@3, and hit@10) of the TransE model on the ConceptNet dataset perform well?
Dear ZhongPeixiang: Does the result(hit@1, hit@3, and hit@10) of the TransE model on the ConceptNet dataset perform well?
Can’t remember the exact results. The hit@1 is bad but MRR is around 0.2 to 0.3 on a filtered ConceptNet. The binary triplet classification accuracy is around 0.9.
Hi,
I experimented with TransE and TransH on ConceptNet (2.2M entities, 37 relations and 4.8M triplets).
The training speed looks good. But the validation speed (using 16 cores CPU or 1080Ti and V100 GPUs) is slow, e.g., 6 mins per 1000 triplets for TransH using V100 GPU. Testing on 50K triplets costs nearly 5 hours, which makes early_stopping not feasible.
The training and testing configs are given below: