2s-AGCN icon indicating copy to clipboard operation
2s-AGCN copied to clipboard

代码中的几个地方似乎和文献中描述的对应不上

Open 541968679 opened this issue 5 years ago • 14 comments

  1. 初始化方法 文献中说两个embedding用的卷积参数是全0初始化,但代码中不是
  2. attention邻接矩阵C的计算方法 文献中提到用softmax,但代码中换成了tanh(上一版代码仍然是softmax)
  3. STC模块的结合方式 有两种方式,add和concate,按文献中的结果,concate是优于add的,但concate势必会多一层FC层或conv层来调整通道数,代码中似乎完全没有concate相关部分
  4. 和上一版代码相比,多了warm up epoch,这部分贡献如何,也没有说明

个人认为任何一个细节都可能影响最后的结果,而代码中有太多文献里没有提及的改动,因此不太容易验证文章的ablation实验是否正确

541968679 avatar Jan 02 '20 11:01 541968679

关于softmax和tanh,我个人认为确实tanh要更好,因为我在实验中发现,由于softmax不是一个按原点对称进行映射的函数,因此负值会被映射为接近0,而正值会很大,然而两个向量的夹角为180度和为0度的时候都应该是高相关性,因此最好的办法是先取绝对值再softmax

541968679 avatar Jan 02 '20 11:01 541968679

感谢你的提醒:

  1. 这里是我写错了,在原来文章上改得,没注意到。
  2. tanh是会好一些,但公式上不是很优美,我会把他当成一个trick再后面实验中提一下。
  3. 这里是指三个模块顺序执行更好一些,不是说吧结果concat起来
  4. warm up每个实验都用了,所以没有必要特别指明其提升吧,也不是什么贡献。

关于softmax和tanh的比较,你的解释很好,但我想取绝对值再softmax和tanh相比不应该自由度更差一些吗,你在实验中发现取绝对值再softmax要比tanh更好吗?

lshiwjx avatar Jan 06 '20 03:01 lshiwjx

首先感谢你的回复! 我其实试过取绝对值再softmax,只是一种猜想,向量夹角那个说法我后来想想也觉得不太正确,比较牵强,因为向量夹角和相关性应该没有太大关系 你说的也很有道理,因为softmax得到的总是一个正值,而且值还总是在0-1,相比于tanh的无限取值范围确实更好一点但我看到好多NL论文都在用softmax,也许确实有特殊作用?  concate那个是我理解错了,不好意思! warm up我记得之前的2S-AGCN那个版本没有用,虽然确实不是什么贡献,但对前期的loss平滑度影响还蛮大的,我发现0.1学习率确实会出现loss震荡不稳定的情况,是否该用平滑的学习率更好呢?

------------------ 原始邮件 ------------------ 发件人: "LShi"<[email protected]>; 发送时间: 2020年1月6日(星期一) 中午11:06 收件人: "lshiwjx/2s-AGCN"<[email protected]>; 抄送: "黄科"<[email protected]>; "Author"<[email protected]>; 主题: Re: [lshiwjx/2s-AGCN] 代码中的几个地方似乎和文献中描述的对应不上 (#36)

感谢你的提醒:

这里是我写错了,在原来文章上改得,没注意到。

tanh是会好一些,但公式上不是很优美,我会把他当成一个trick再后面实验中提一下。

这里是指三个模块顺序执行更好一些,不是说吧结果concat起来

warm up每个实验都用了,所以没有必要特别指明其提升吧,也不是什么贡献。

关于softmax和tanh的比较,你的解释很好,但我想取绝对值再softmax和tanh相比不应该自由度更差一些吗,你在实验中发现取绝对值再softmax要比tanh更好吗?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

541968679 avatar Jan 06 '20 03:01 541968679

tanh是-1到1嘛,也不算无限吧。nlp论文都是用softmax,而且确实他们用tanh不如softmax。我也很疑惑这一点。

平滑学习率这一点我试过cosine下降lr,不如0.1.我觉得虽然说看着loss震荡了点,但震荡不代表不好,他更容易跳出局部最优。不过可以试试减小点学习率?我没太多研究过学习率的问题。

lshiwjx avatar Jan 06 '20 03:01 lshiwjx

我复现了一下,最多到87.63%(best epoch),达不到文献里面说的88.0%,可能是什么原因呢 大佬可以加你微信吗

541968679 avatar Jan 07 '20 06:01 541968679

我也遇到这个问题了。不同硬件平台可能导致结果不一样吧?用2个卡和用4个卡,算的BN不一样,结果是不一样的。不同型号的卡的显存不一样导致batchsize不一样,结果也不一样。P.S. 上次请教过你画那个图8,图9的方法,你给我贴了对应的代码,也很感谢。可是我不会用,代码中,joints, connect and additional_connect我不知道是定义的啥。。。大佬整个代码都公布了,能不能把画图的这个代码嵌到工程里,我们好看看究竟是怎么用的。。一直想再向你请教,又怕太麻烦你。帮帮小菜菜吧。。ORZ

desertfex avatar Jan 09 '20 07:01 desertfex

那个画图的应该比较容易吧,参数取出来就可以了

541968679 avatar Jan 09 '20 07:01 541968679

你说下微信我加你

541968679 avatar Jan 09 '20 08:01 541968679

大佬能不能把画图的这个代码也发给我让我学学。。很想向你请教,您应该是一作吧,我邮箱发您我的微信,太感谢了。。ORZ @lshiwjx

ttt0666 avatar Aug 12 '20 09:08 ttt0666

那个画图的应该比较容易吧,参数取出

那个画图的应该比较容易吧,参数取出来就可以了 作者,您好,我也想知道图8图9那种图是如何画出来的,能否分享一下,不胜感激

KrisLee512 avatar Sep 18 '20 08:09 KrisLee512

@541968679 请问能加个联系方式吗,想请教一下画骨架拓扑图的方法

Liushilin avatar Dec 15 '21 07:12 Liushilin

你说下微信我加你

大佬 复现的时候遇到一点问题 想请教一下 能加一下联系方式吗 我的邮箱[email protected]

wangxx0101 avatar Dec 29 '21 10:12 wangxx0101

那个画图的应该比较容易吧,参数取出来就可以了

大佬这么久了 图8,图9可视化的代码您还有吗 能否分享给我 邮箱[email protected] 谢谢

HeiHeiCCC avatar Feb 26 '24 09:02 HeiHeiCCC

我也遇到这个问题了。不同硬件平台可能导致结果不一样吧?用2个卡和用4个卡,算的BN不一样,结果是不一样的。不同型号的卡的显存不一样导致batchsize不一样,结果也不一样。P.S. 上次请教过你画那个图8,图9的方法,你给我贴了对应的代码,也很感谢。可是我不会用,代码中,joints, connect and additional_connect我不知道是定义的啥。。。大佬整个代码都公布了,能不能把画图的这个代码嵌到工程里,我们好看看究竟是怎么用的。。一直想再向你请教,又怕太麻烦你。帮帮小菜菜吧。。ORZ

大佬这么久了 图8,图9可视化的代码您还有吗 能否分享给我 邮箱[email protected] 谢谢

HeiHeiCCC avatar Feb 26 '24 09:02 HeiHeiCCC