好像有一个bug?
Wangpeiyi9979 opened this issue · comments
感谢您的细心指正。
(1)在TapNet原文中,采用的是cupy.linalg库中的svd,在该svd中,u * s * v = svd(A),返回的v其实是转置之后的结果,因此它的基向量是行向量。而在PyTorch库中的svd中,u * s * v^T = svd(A),其返回的仍是v,但是与cupy.linalg中svd返回的v不同,它未经过转置,因此它的列向量才是基向量。十分抱歉,未能察觉到这两个库实现的差异。
(2)在修正之后,我们进行了一个初步的实验。correct_svd的实验结果相比于当前会有所降低。虽然TapNet不是我们文章的核心贡献,但是这是一个有趣的现象,也是一个值得去探索的点。
(3)我们创建了一个correct_svd分支,并将修正后的代码同步到该分支里了,也欢迎您继续指正。
我在一些数据集上测试了TapNet, 比如FewRel,发现它并没有什么用,甚至会造成结果下降,而且个人感觉TapNet本身的**就有点奇怪。也许是自己认识不足吧。thx
我在一些数据集上测试了TapNet, 比如FewRel,发现它并没有什么用,甚至会造成结果下降,而且个人感觉TapNet本身的**就有点奇怪。也许是自己认识不足吧。thx
我个人感觉你的个人感觉可能很有道理233
所以建议在别的数据集上使用的话,最好直接用我们的CDT模块、Pair-wise Trick和 Label Name Embedding,这几个tricks还是提升明显的~