全连接网络和卷积网络的参数计算


卷积

CNN网络的参数量和特征图的尺寸无关,仅和卷积核的大小,偏置及BN有关.

一、普通卷积

卷积参数计算公式:P =卷积核长 × 卷积核宽 × C_in × C_out + C_out (C_in 、 C_out分别表示输入输出的通道数,+C_out是偏置项,r如果加上BN,还要学习两个参数α,β=2*c_out),

卷积输出的图像大小:
长 = [(In_length - filter_length + 2padding) / stride_length + 1] (方括号表示向上取整,不会打取整的符号)
宽 = [(In_width - filter_width+ 2
padding) / stride_length + 1] (方括号表示向上取整,不会打取整的符号)

进行的乘法次数:
( 输入图像的尺寸Wout,Houtx 卷卷积的尺寸F x 输入深度 x 输出深度= Wout x Hout x F x F x C_in × C_out

卷积层连接数计算:
P × Out_length × Out_width (参数个数 × 输出图像长 × 输出图像宽)

E.G. 输入:6 ×14 × 14 卷积核16个大小为6 ×5 ×5 输出(14-5/1 +1 = 10)为16 ×10 × 10
卷积参数:16 ×6× 5 ×5 + 16 = 2416
连接数: 2416 ×10 × 10 = 241600(后一层共有 16 × 10 ×10 个节点,每一个节点与前一层的5 × 5 × 6个节点相连接(也就是对应前一层的这些区域),然后每一个节点连接一个偏置项,即为:(5×5×6+1)×16 × 10 ×10,而前面的(5×5×6+1)×16 正好为参数的个数)

二、深度可分离卷积

参数量公式:(K_h × K_w ×1 + 1)× C_in + (1×1× C_in + 1)× C_out
深度可分离卷积也就是将一个(K_h , K_w , C_in ,C_out)的卷积拆分成了先用一个
(K_h , K_w , 1 ,C_in)和一个(1 ,1 , C_in ,C_out)的卷积,在大大减少参数量的情况下精度也没有下降多少。
E.G.:
在这里插入图片描述
深度可分离卷积与 2D 卷积之间的乘法运算次数之比为:1/kernel_size的平方 + 1/c_out.(不加偏置的情况)

二、空间可分离卷积

乘法次数: N x (N-2) x m + (N-2) x (N-2) x m = (2N-2) x (N-2) x m (m x m 卷积核, N*N图片,步长为1)
在这里插入图片描述

三、空洞卷积

空洞卷积的参数量和普通卷积参数量相同。

全连接

参数个数: FC前层 × FC后层
计算量/乘法计算次数/times : FC前层 × FC后层

猜你喜欢

转载自blog.csdn.net/PETERPARKERRR/article/details/122156856