1)想理解result_queue里装什么内容?
2)进入到多线程的目标函数中,worker_func()。 刚才的result_queue就是这个里的out_queue。
3)跳入out_queue.put(test_evaluation()),这个函数里在做评估计算。def test_evaluation()函数 返回return (mean_rank_h, filtered_mean_rank_h), (mean_rank_t, filtered_mean_rank_t)。
所以out_queue里放的就是(mrh,fmrh,mrt,fmrt) ; 所以result_queue里放的就是(mrh,fmrh,mrt,fmrt)。
4.我想让out_queue里的结果变好,我应该去改变预测的结果数据head_pred,tail_pred。---------->那就应该改变in_queue
5.返回到in_queue===等价于===evaluation_queue
6.evaluation_queue能get(),那么evaluation_queue应该有一个put()的过程。此处,它把测试集、预测得到的头实体、预测得到的尾实体都放入其中了。这些东西就是会影响到计算结果的内容,所以需要对他们进行改变。因为testing_data是标准答案,所以需要改变head_pred、tail_pred。
分析:图模型输入:testing_data 图模型输出:[test_head, test_tail]