yan-hao-tian / VW

iclr2024 poster Varying Window Attention
MIT License
118 stars 19 forks source link

为什么context的形状要调整两次? #20

Closed sunhanzhang closed 3 months ago

sunhanzhang commented 3 months ago

你好,作者大大。

question 如两个断点所言,为什么要对context的形状进行两次调整,第一次还能看懂,因为很符合逻辑,第二次调整就看不懂了,而且最后context的高和宽都回归到了没有缩放前的形状了,不知道这个调整的作用是什么?

sunhanzhang commented 3 months ago

顺便想问一下,dope_scaling函数会改变context的高和宽吗?

yan-hao-tian commented 3 months ago

第一次断点返回的shape是(窗口数量,dope后的通道数,大窗口高,大窗口宽) 第二次断点可以理解为vit中常用的patch embedding的flatten操作,即将每一个大窗口分成(局部窗口高乘于局部窗口宽)个数的小tile,每个tile拉成一个向量,这样大窗口也就是回到了与局部窗口完全一样的shape,这样局部窗口与大窗口进行attention计算时就很规整。其实也是实验得来的比较简便且有效的做法。

顺便想问一下,dope_scaling函数会改变context的高和宽吗?

不改变,dope只改变通道数