一:dw conv与普通conv 理论计算复杂度
举例如下:
卷积1:普通卷积,输入为64*64*256,输出为64*64*256,卷积核大小为3*3。
参数为3*3*256*256=590K,计算量为64*64*256*3*3*256=2.42G,计算过程的memory access量(输入输出数据+参数)为64*64*256*2 + 3*3*256*256 = 2.69M。
卷积2:dw卷积,输入为64*64*256,输出为64*64*256,卷积核大小为3*3。
参数为3*3*256=2.3K个,计算量为64*64*256*3*3=9.44M,计算过程的memory access量为64*64*256*2 + 3*3*256=2.10M。
卷积3:普通卷积,输入为64*64*16,输出为64*64*16,卷积核大小为3*3。
参数为3*3*16*16=2.3K个,计算量为64*64*16*3*3*16=9.44M,计算过程的memory access量为64*64*16*2 + 3*3*16*16=133K。
可以看到卷积2肯定比卷积1快,因为计算量下降到1/256了,但卷积2实际上无法达到卷积1的256倍速度(我记得我测得结果大概是快10倍左右),因为memory access大小并没有显著降低。卷积2也无法达到卷积3的速度,因为虽然FLOPS相同,但memory acces
本文深入探讨了深度学习中卷积操作的复杂度计算,包括普通卷积与深度卷积的比较,并详细解析了im2col算法在卷积实现中的作用。此外,文章还介绍了Batch Norm、Layer Norm和Group Norm三种归一化方法,分析了它们的工作原理和优缺点。
订阅专栏 解锁全文
221

被折叠的 条评论
为什么被折叠?



