对于 2x10x10 的 Tensor 和 10x2x3x3 的 Kernel 进行卷积操作,每个输出位置都需要进行一次乘法运算。由于忽略边界影响,输出大小为 10x8x8 (10 个通道,每个通道大小为 8x8)。\n\n因此,总共需要进行的乘法次数为:\n10x8x8x10x3x3 = 57,600 次乘法。\n\n如果 Kernel 中的 3x3 系数可以横竖分解,即可以写成一个 3x1 的向量乘以一个 1x3 的向量(向量外积),则乘法次数可以减少。\n\n横向分解:每个输出通道的每个位置都需要进行 3x1 的向量乘法,共有 8x8 个位置,总共需要进行的乘法次数为:10x8x8x3 = 1,920 次乘法。\n\n竖向分解:每个输出通道的每个位置都需要进行 1x3 的向量乘法,共有 10 个通道,总共需要进行的乘法次数为:10x8x8x10 = 6,400 次乘法。\n\n因此,如果 Kernel 中的 3x3 系数可以横竖分解,则总共需要进行的乘法次数为:1,920 + 6,400 = 8,320 次乘法。

卷积运算乘法次数计算:2x10x10 Tensor 与 10x2x3x3 Kernel

原文地址: https://www.cveoy.top/t/topic/qc9H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录