2s-AGCN
2s-AGCN copied to clipboard
代码中的几个地方似乎和文献中描述的对应不上
- 初始化方法 文献中说两个embedding用的卷积参数是全0初始化,但代码中不是
- attention邻接矩阵C的计算方法 文献中提到用softmax,但代码中换成了tanh(上一版代码仍然是softmax)
- STC模块的结合方式 有两种方式,add和concate,按文献中的结果,concate是优于add的,但concate势必会多一层FC层或conv层来调整通道数,代码中似乎完全没有concate相关部分
- 和上一版代码相比,多了warm up epoch,这部分贡献如何,也没有说明
个人认为任何一个细节都可能影响最后的结果,而代码中有太多文献里没有提及的改动,因此不太容易验证文章的ablation实验是否正确
关于softmax和tanh,我个人认为确实tanh要更好,因为我在实验中发现,由于softmax不是一个按原点对称进行映射的函数,因此负值会被映射为接近0,而正值会很大,然而两个向量的夹角为180度和为0度的时候都应该是高相关性,因此最好的办法是先取绝对值再softmax
感谢你的提醒:
- 这里是我写错了,在原来文章上改得,没注意到。
- tanh是会好一些,但公式上不是很优美,我会把他当成一个trick再后面实验中提一下。
- 这里是指三个模块顺序执行更好一些,不是说吧结果concat起来
- warm up每个实验都用了,所以没有必要特别指明其提升吧,也不是什么贡献。
关于softmax和tanh的比较,你的解释很好,但我想取绝对值再softmax和tanh相比不应该自由度更差一些吗,你在实验中发现取绝对值再softmax要比tanh更好吗?
首先感谢你的回复! 我其实试过取绝对值再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.
tanh是-1到1嘛,也不算无限吧。nlp论文都是用softmax,而且确实他们用tanh不如softmax。我也很疑惑这一点。
平滑学习率这一点我试过cosine下降lr,不如0.1.我觉得虽然说看着loss震荡了点,但震荡不代表不好,他更容易跳出局部最优。不过可以试试减小点学习率?我没太多研究过学习率的问题。
我复现了一下,最多到87.63%(best epoch),达不到文献里面说的88.0%,可能是什么原因呢 大佬可以加你微信吗
我也遇到这个问题了。不同硬件平台可能导致结果不一样吧?用2个卡和用4个卡,算的BN不一样,结果是不一样的。不同型号的卡的显存不一样导致batchsize不一样,结果也不一样。P.S. 上次请教过你画那个图8,图9的方法,你给我贴了对应的代码,也很感谢。可是我不会用,代码中,joints, connect and additional_connect我不知道是定义的啥。。。大佬整个代码都公布了,能不能把画图的这个代码嵌到工程里,我们好看看究竟是怎么用的。。一直想再向你请教,又怕太麻烦你。帮帮小菜菜吧。。ORZ
那个画图的应该比较容易吧,参数取出来就可以了
你说下微信我加你
大佬能不能把画图的这个代码也发给我让我学学。。很想向你请教,您应该是一作吧,我邮箱发您我的微信,太感谢了。。ORZ @lshiwjx
那个画图的应该比较容易吧,参数取出
那个画图的应该比较容易吧,参数取出来就可以了 作者,您好,我也想知道图8图9那种图是如何画出来的,能否分享一下,不胜感激
@541968679 请问能加个联系方式吗,想请教一下画骨架拓扑图的方法
我也遇到这个问题了。不同硬件平台可能导致结果不一样吧?用2个卡和用4个卡,算的BN不一样,结果是不一样的。不同型号的卡的显存不一样导致batchsize不一样,结果也不一样。P.S. 上次请教过你画那个图8,图9的方法,你给我贴了对应的代码,也很感谢。可是我不会用,代码中,joints, connect and additional_connect我不知道是定义的啥。。。大佬整个代码都公布了,能不能把画图的这个代码嵌到工程里,我们好看看究竟是怎么用的。。一直想再向你请教,又怕太麻烦你。帮帮小菜菜吧。。ORZ
大佬这么久了 图8,图9可视化的代码您还有吗 能否分享给我 邮箱[email protected] 谢谢