CNN找工作面试基础知识

一、特征图大小计算方式

卷积中的特征图大小计算方式有两种,分别是‘VALID’和‘SAME’。
根据tensorflow中的conv2d函数,我们先定义几个基本符号
1、输入矩阵 W×W,这里只考虑输入宽高相等的情况,如果不相等,推导方法一样,不多解释。
2、filter矩阵 F×F,卷积核
3、stride值 S,步长
4、输出宽高为 new_height、new_width
1)如果padding = ‘VALID’

new_height = new_width = (W – F + 1) / S (结果向上取整)

也就是说,conv2d的VALID方式不会在原有输入的基础上添加新的像素(假定我们的输入是图片数据,因为只有图片才有像素),输出矩阵的大小直接按照公式计算即可。
或者是公式:

N = (W − F + 2P )/S+1     #P=0       padding的像素数P

2)如果padding = ‘SAME’

new_height = new_width = W / S (结果向上取整)

即输入尺寸除以步长s。比如输入图片大小为28×28,s=4,则输出图片大小为7×7。
有计算公式为,用于找工作做题:输入图片大小 W×W,输出图片大小为 N×N

N = (W − F + 2P )/S+1       #padding的像素数P
其中padding为特征图填充的圈数,即补零的行数和列数(padding)为P。
若采用'SAME'方式,kernel_size=1时,padding=0;kernel_size=3时,padding=1;kernel_size=5时,padding=2,以此类推。

3)参数量大小的计算
在CNN中,每层有两种类型的参数:weights 和biases。总参数数量为所有weights和biases的总和。
定义如下:
W=卷积层的weights数量
B=卷积层的biases数量
P=所有参数的数量
K=核尺寸
N=核数量
C =输入图像通道数
卷积层中,核的深度等于输入图像的通道数。于是每个核有K*K个参数.并且有N个核.由此得出以下的公式。

W=K×K×C×N
B=N
P=W+B

示例:AlexNet网络中,第1个卷积层,输入图像的通道数C是3,核尺寸K是11*11,核数量是96. 该层的参数计算如下:

W=11×11×3×96
B=96
P=34848+96=34944

猜你喜欢

转载自blog.csdn.net/u014106566/article/details/83788878