卷积输出特征图大小计算
Wout = Winput - Wkernerl + 2 * Padding / Strides + 1
Hout = Hinput - Hkernel + 2 * Padding / Strides + 1
- Wout、Hout:输出图像的宽、高
- Winput、Hinput:输入图像的宽、高
- Wkernel、Wkernel:卷积核的宽、高
- Padding:填充大小
- Strides:步长大小
计算量——标准卷积
参数说明
- M:输入通道数、N:输出通道数
标准卷积的输入是一个Df×Df×M的特征图
标准卷积的输出是一个DF×DF×N的特征图
应用的卷积核:Dk*Dk
则:
- 标准卷积层的参数为:Dk×Dk×M×N
- 标准卷积的计算量:Dk×Dk×M×N×DF×DF
对一张图像进行卷积生成1张特征图
Wi = 3, Hi = 3
kw = 3, kh = 3
Wo = 2, Ho = 2
M:1, N:1
计算量:kw×kh×wo×wh×M×N = 3×3×2×2×1×1= 36
权值个数:kw×kh×M×N = 3×3×1×1 = 9
对一张图像进行卷积生成多张特征图
wi = 32, hi = 32
kw = 5, kw = 5
wo = 28, wo = 28
M = 1, N = 3
计算量:kw×kh×wo×ho×M×N = 5×5×28×28×1×3=58800
权值个数:kw×kh×M×N = 5×5×1×3=75
对多张图像进行卷积生成1张特征图
wi = 32, hi =32
kw = 5, kh = 5
wo = 28, ho = 28
M = 3, N = 1
计算量:kw×kh×wo×ho×M×N = 5×5×28×28×3×1
权值个数:kw×kh×M×N = 5×5×3×1
对多张图像进行卷积生成多张特征图
wi = 32, hi = 32
kw = 5, kh = 5
wo = 28, ho = 28
M = 64, N = 128
计算量:kw×kh×wo×ho×M×N = 5×5×28×28×64×128 = 160563200
权值个数:kw×kh×M×N = 5×5×64×128 = 204800
池化计算
输出维度计算:
计算量:
总计算量=比较次数×总的池化操作次数
比较次数:池化核大小 - 1
总的池化操作次数: (原特征图尺寸 / 步长)^2
例子如下:
池化层的计算量主要与池化核的大小、步长和特征图的尺寸有关。在这个例子中,池化核大小为 3×3,步长为 2,特征图的尺寸从 55×55 变为 27×27。
计算量的具体过程:
- 对于每个池化操作,需要在 3×33×3 的区域中找到最大值。
- 对于 27×27的特征图,每个池化操作涉及对 3×3 区域的比较,然后选择最大值。因此,每个池化操作需要进行 3×3−1=8次比较。
- 特征图的尺寸减小了一半(因为步长为 2),所以总共有 (27/2)×(27/2)=196个这样的池化操作。
- 每个池化操作中有 8 次比较。
因此,池化层的总计算量可以通过以下公式估算:
总计算量=每个池化操作的比较次数×总的池化操作次数总计算量=每个池化操作的比较次数×总的池化操作次数
在这个例子中,总计算量为 8×196。