动态卷积过程
一次卷积的计算量,如何计算呢 ,参考上图,只是其中一个channel,
((*
+1)*
+ (
-1))*
*
*
其中(这需要对卷积过程有较深的理解)
(*
+1)表示在一个卷积核计算时在叠加bias,
乘以表示在输入的channel方向进行乘积
-1 表示一次卷积之后进行
方向的叠加
((*
+1)*
+ (
-1)) 表示最终汇聚成特征图上的一个点
乘以*
*
表示在最终的输出特征图,所有点的的个数
当然简化之后一次卷积的时间按复杂度: O(*
*
*
*
*
)
忽略bias参数,简化之后参数: *
*
*
每个卷积核输出特征图
的边长
每个卷积核
的边长
每个卷积核的通道数,也即输入通道数,也即上一层的输出通道数。
本卷积层具有的卷积核个数,也即输出通道数。
- 可见,每个卷积层的时间复杂度由输出特征图面积
、卷积核面积
、输入
和输出通道数
完全决定。
- 其中,输出特征图尺寸本身又由输入矩阵尺寸
、卷积核尺寸
、
、
这四个参数所决定,表示如下:
- 注1:为了简化表达式中的变量个数,这里统一假设输入和卷积核的形状都是正方形。
- 注2:严格来讲每层应该还包含 1 个
参数,这里为了简洁就省略了。
ref https://zhuanlan.zhihu.com/p/31575074
https://zhuanlan.zhihu.com/p/24837264