凭什么 31x31 大小卷积核的耗时可以和 9x9 卷积差不多?| 文末附 meetup 回顾 为什么是大 kernel 卷积?Transformer 目前在 CV 领域愈发火热,这份火热促使着优秀学者们思考一个更深层次的问题。部分学者认为 Transformer 之所以 work 更加本质的原因在于其大的感受野 … MegEngine Bot 卷积核类型简介 McGL
CNN 中最常见的卷积 kernel 大小有 2x2, 3x3, 5x5, 7x7 等,在本文中我们将卷积 kernel 大小超过 9x9 的视作大 kernel,同时以下所有数据都是近似数据。我们不难看出随着卷积 kernel 大小的增加,卷积的参数量和计算量都呈平方增长,这往往也是大家不喜欢用大 kernel 卷积的其中一个原因。为了获得大 kernel 卷积...
通过观察计算密度公式我们不难发现,增加 depthwise 卷积的 kernel size 就是一个增加其计算密度的有效方案,例如保持每个 warp 4x32 的输出配置下 kernel size 31x31 的 depthwise 卷积计算密度将达到$$\frac{4*32*31*31*2}{(31*31+34*62)*4} = 20$$ FLOPs/Byte,不难看出此时已经变成了 Compute Bound ...
CNN 中最常见的卷积 kernel 大小有 2x2, 3x3, 5x5, 7x7 等,在本文中我们将卷积 kernel 大小超过 9x9 的视作大 kernel,同时以下所有数据都是近似数据。我们不难看出随着卷积 kernel 大小的增加,卷积的参数量和计算量都呈平方增长,这往往也是大家不喜欢用大 kernel 卷积的其中一个原因。为了获得大 kernel 卷积...
因此,增加卷积核大小相比通过增加模型层数来实现大感受野更为高效。为解决大核卷积带来的参数量和计算量激增问题,深度卷积应运而生。深度卷积通过逐通道做卷积,显著降低了计算量和参数量,较之常规卷积更为高效。深度卷积为何值得优化?这个问题可通过 Roofline 模型得到解答。该模型旨在解释特定计算设备下...
CNN 中最常见的卷积 kernel 大小有 2x2, 3x3, 5x5, 7x7 等,在本文中我们将卷积 kernel 大小超过 9x9 的视作大 kernel。我们不难看出随着卷积 kernel 大小的增加,卷积的参数量和计算量都呈平方增长,这往往也是大家不喜欢用大 kernel 卷积的其中一个原因。为了获得大 kernel 卷积带来的收益的同时降低其计算量...
MegEngine Bot:凭什么 31x31 大小卷积核的耗时可以和 9x9 卷积差不多?| 文末附 meetup 直播预告237 赞同 · 22 评论文章 为什么是大 kernel 卷积? Transformer 目前在 CV 领域愈发火热,这份火热促使着优秀学者们思考一个更深层次的问题。部分学者认为 Transformer 之所以 work 更加本质的原因在于其大的感受野(论文...
CNN 中最常见的卷积 kernel 大小有 2x2, 3x3, 5x5, 7x7 等,在本文中我们将卷积 kernel 大小超过 9x9 的视作大 kernel。我们不难看出随着卷积 kernel 大小的增加,卷积的参数量和计算量都呈平方增长,这往往也是大家不喜欢用大 kernel 卷积的其中一个原因。为了获得大 kernel 卷积带来的收益的同时降低其计算量...
根据有效感受野(ERF)理论,ERF 大小与 kernel 大小成正比关系,与模型深度的平方根也成正比关系。 所以通过堆叠层数实现大感受野必然不如增加卷积 kernel 大小更高效。因此有学者提出超大 kernel 卷积的网络结构,并证明在目标检测和语义分割等任务上超过 Swin Transformer 而且远超传统小卷积模型。
此时的卷积的运行时间并不会显著增长,所以它并不适用 “随着 kernel 的增大,卷积时间呈平方增长” 这个结论。这也是我们认为大 kernel depthwise 还有较大的优化潜力,其运行时间并不会明显差于小 kernel depthwise 卷积的依据。凭什么 31x31 大小卷积核的耗时可以和 9x9 卷积差不多?| 文末附 meetup 回顾...