卷积层 / 全连接层 的空间和计算复杂度
空间 / 计算复杂度
-
参数个数
全连接层 >> 卷积层
每个输入元素,都由独立的权重,因此,权重参数的个数很多。
卷积层,复用卷积核的参数,因此,参数个数少很多。
因此,全连接层,对内存的占用大很多。
-
运算次数
卷积层 > 全连接层
卷积层的运算次数,由 6 个乘积因子决定。
全连接层,仅仅有两个乘积因子。因此,计算次数,通常更少
因此,卷积层,对计算资源消耗更多。
复杂度
-
卷积层
参数个数
\[O(C_{out} * C_{in} * K_{h} * K_{w} ) \]计算复杂度
\[O(C_{out} * C_{in} * K_{h} * K_{w} * O_{h} * O_{w}) \] -
全连接层
参数个数 / 计算复杂度,均为
\[O(d_{in} * d_{out}) \]
卷积层的计算
-
参数个数
\[n1 = C_{out} * C_{in} * K_{h} * K_{w} + C_{out} \] -
计算次数
计算复杂度:卷积层>> 激活层 / 汇聚层
卷积层:
\[(C_{out} * C_{in} * K_{h} * K_{w} + C_{out}) * O_{h} * O_{w} = n1 * O_{h} * O_{w} \]激活层:
\[C_{in} * I_{h} * I_{w} \]汇聚层:
\[C_{in} * K_{h} * K_{w} * O_{h} * O_{w} \]
全连接层的计算
-
参数个数 / 计算次数
\[d_{in} * d_{out} + d_{out} \]
参考: