B站讲课视频,差点翻车

NLP从入门到放弃

共 1073字,需浏览 3分钟

 ·

2021-11-13 10:07

大家好,我是DASOU

前几天我在B站录制了一期讲解SwinTRM模型的视频:通宵做了近100页PPT,累趴了
在这期视频之后,有几个小伙伴私下找到我说在一个小细节上和我理解的不同。
在SwinTRM中,一个比较重要的特点是把 self-att 放在一个窗口内部,而不再是一整张图片;
就好比是下面这个图:

一整张图【8,8】被分为了四个窗口,每个窗口的大小为【4,4】。
我在讲解这一块之前,专门扒了一下源代码,然后谈到了这么一句话,大致是这么说的:
SwinTRM block的输入是单个窗口,而不再是整个图片;对于单个窗口来说,它是把内部的每个像素点当成一个token送入到后续的模型中去;
好,重点来了,这几个朋友私下谈到和我理解不同的点就是在这里,因为上面这个图的图例上,很清楚的表明,在原论文中,灰色的框框,代表的应该是一个patch,而不是一个像素点;

其实这几个朋友的可能没有注意到,在我视频讲解中,对这个像素点的定义不仅仅是一个数值,而是一个向量,也就是输入到SwinTRM中的是这个像素点的所有通道数,也就是我PPT中的这个图:

也就是说,在原论文中的灰色框框,本身就是一个【1,96】元素(注,不同阶段可能维度不同),也就是我在视频中所称的像素点;
和我讨论的朋友观点其实分为两种;
第一种认为,这个灰色框框代表的patch不是【1,96】这种向量,而是patch_size大于1,比如【2,2,96】这种patch_size大小为2的情况;从源码角度来看,这种思路肯定是不正确的;
第二种朋友提醒我说CV领域一般把最小处理单元称之为cell或者patch,很少称之为像素点;
其实第二种观点目前来看,可能会更精准一点;
因为在原论文中有这么一句话:
In our implementation, we use a patch size of 4 × 4 and thus the feature dimension of each patch is 4 × 4×3 = 48.
也就是原论文也是把【1,48】这种称之为一个patch,而不是一个像素点
所以还是我用词上可能没用的特别准,所以写下这个文章,避免给大家带来误解。
大家在看视频的时候,注意我的像素点的意思其实是当前此时阶段处理的最小单元就可以了;

浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报