thunlp / JointNRE

Joint Neural Relation Extraction with Text and KGs
MIT License
187 stars 36 forks source link

为什么训练的时候输出和与测试的时候不一样? #6

Closed Cauchyzhou closed 6 years ago

Cauchyzhou commented 6 years ago

我可以理解测试输出的原理,但是为什么训练的时候不也用同样的办法呢,因为我在用BiLSTM模型在自定义数据集时(NA关系的三元组占了训练集总数的80%左右),发现预测的时候NA和正确关系的输出都是1。

结果的问题我已经发现了,是dropout的问题,tf.layers.dropout 的参数是drop率,不是keep_prob

THUCSTHanxu13 commented 6 years ago

训练时候做pr的话太麻烦了,训练显示的就是简单的预测准确率,只是用来辅助判断训练过程是不是有效的。我的两个联合模型是并行训练的,中间停下来进行测试比较麻烦。不过NA和正确关系都是1,过拟合了吧。。。

Cauchyzhou commented 6 years ago

结果的问题我已经发现了,是dropout的问题,tf.layers.dropout 的参数是drop率,不是keep_prob

我表达的不太清楚,我针对的是TransD模型,训练时使用的katt是用已知标签/关系来做,测试的时候是所有关系都做katt,然后后面再取最大当预测。那么为什么训练的时候不用所有关系的katt那样做呢?

THUCSTHanxu13 commented 6 years ago

这个有点延续Neural Relation Extraction with Selective Attention over Instances的训练测试方式,因为测试的时候并不知道关系是什么,所以采用了这样的测试方式。不过理论上,你说的训练方式也是可以的