0+x
0+x
我都在怀疑自己看错了,谢谢你们提醒。
> > 问题主要在transfomer_cosine.TransformerEncoderLayer.forward_post和forward_pre这两个方法中。 `def forward_post(self,src, shape,...` `def forward_pre(self,src, shape,..` 其中默认了参数src的第二维为1(使用的是`torch.squeeze(src, dim=1)`,将为1的维度压缩了),导致后面的consistent_feature计算时,`consistent_feature = torch.matmul(mask, feature)`,mask形状为(256, 256),而feature的形状在batch>1时为(256, batch, 512),两者进行叉乘则会出现错误。 虽然可以将suqeeze函数改成flatten,feature计算编程`feature = torch.flatten(src, 1)`,这样就可以处理batch>1的输入了,但是不太清楚这样处理是否符合作者原本的设计,这个操作我还不是很熟悉。 > > 您好 这么修改会导致精度下降吗 我个人觉得这样不符合原论文的目标。直接flatten展平的操作,虽然可以使得运算正常,但是含义却发生了变化。原因在于作者在计算mask的时候,consistent_mask = torch.sum(local_att_mask, dim=0),在注意力头的维度上进行了累加,得到多头的注意力mask,然鹅这个mask是基于1个bs的,这样累加才与后边的feature =...
> 好的,让我最近抽空试一下╮(╯▽╰)╭ 感谢林同学,我前晚也按照文章描述,浅浅写了一下。代码能运行,正在训练,等待测试。
> 已上传,位于 utils/regression_trainer_cosine_multibatch.py,在 train.py 里引用即可,但未测试性能 Really really appreciate!!✧٩(ˊωˋ*)و✧ Wishing you success in your work!٩۹(๑•̀ω•́ ๑)۶
> > 请问大家,有人能跑通训练代码吗?可以交流一下吗? > > 我已经成功跑通,不过使用作者的参数得到的效果并不好,未达到论文中的效果 你好,我也能跑通,但是作者是不是并没有完全实现auxiliary point的部分。并不是论文描述的代码吧?
> Thanks for your interest in our work. Here are the answers to your questions: > > 1. Your understanding is correct. > 2. We use split map to estimate...