卷积层
使用卷积处理图像,输出的图像的尺寸为:
W o u t = W i n − W f i l t e r + 2 P S + 1 W_{out}=\frac{W_{in}-W_{filter}+2P}{S}+1 Wout=SWin−Wfilter+2P+1
H o u t = H i n − H f i l t e r + 2 P S + 1 H_{out}=\frac{H_{in}-H_{filter}+2P}{S}+1 Hout=SHin−Hfilter+2P+1
公式中 W f i l t e r W_{filter} Wfilter和 H f i l t e r H_{filter} Hfilter分别表示卷积核(filter)的宽和高。 P P P(即padding)为在图像边缘填充的边界像素层数。 S S S为步长(Stride)。
图像在输入卷积层之前,有两种边界像素填充方式:
- Same:在输入的图像最外层加上指定层数的像素值全为0的边界,这是为了让图像的全部像素都能被卷积核捕捉到;
- Valid:不对输入的图像进行填充,直接对其进行卷积,这种方式的缺点就是可能导致一些像素不能被卷积核捕捉。
池化层
池化层可以对原始数据进行压缩,减少模型的计算参数,提升运算效率。常用的池化层为:平均池化层和最大池化层。池化层处理的数据一般是经过卷积层处理后生层的特征图。
经过池化层处理的图像,输出的图像的尺寸为:
W o u t = W i n − W f i l t e r S + 1 W_{out}=\frac{W_{in}-W_{filter}}{S}+1 Wout=SWin−Wfilter+1
H o u t = H i n − H f i l t e r S + 1 H_{out}=\frac{H_{in}-H_{filter}}{S}+1 Hout=SHin−Hfilter+1
公式中 W f i l t e r W_{filter} Wfilter和 H f i l t e r H_{filter} Hfilter分别表示卷积核(filter)的宽和高。 W i n W_{in} Win、 H i n H_{in} Hin和 W o u t W_{out} Wout、 H o u t H_{out} Hout分别代表输入、输出的特在图的宽和高。 S S S为步长(Stride)。输入的特征图深度和卷积核深度一致。
VGGNet模型分析
VGGNet是牛津大学计算机视觉组合和Google DeepMind公司研究员共同开发的深度卷积神经网络。是一个经典的神经网络。下面对其结构进行分析。这里对VGG16D进行分析。
VGG16论文中给出的配置:

特点:VGG16D卷积核滑动窗口尺寸统一为 3 × 3 3\times 3 3×3(即感受野尺寸receptive field size为3),步长统一为1,有16层的VGG16模型和19层的VGG19模型两种类型。相对于AlexNet一共八层的结构,增加了层数。增加层数和更小的卷积核能有效提升模型的性能。
分析:
(1)Input层:VGG16的卷积神经网络默认输入数据必须是 224 × 224 × 3 224\times 224\times 3 224×224×3的图像,即高和宽224像素,色彩通道RGB3个,和AlexNet的要求是一致的。
(2)Conv1_1:卷积核维度为 3 × 3 × 3 3\times 3\times 3 3×3×3,步长1,Padding为1。根据卷积核计算公式:
W o u t = W i n − W f i l t e r + 2 P S + 1 = 224 − 3 + 2 × 1 1 + 1 = 224 W_{out}=\frac{W_{in}-W_{filter}+2P}{S}+1=\frac{224-3+2\times 1}{1}+1=224 Wout=SWin−Wfilter+2P+1=1224−3+2×1+1=224
H o u t = H i n − H f i l t e r + 2 P S + 1 = 224 − 3 + 2 × 1 1 + 1 = 224 H_{out}=\frac{H_{in}-H_{filter}+2P}{S}+1=\frac{224-3+2\times 1}{1}+1=224 Hout=SHin−Hfilter+2P+1=1224−3+2×1+1=224
即输出的特征图高和宽都为224,该卷积层描述为:Conv1:64x224x224,即输出的特在图除了尺寸 224 × 224 224\times 224 224×224外,还要深度为64,所以要进行64次卷积,最后输出的特征图维度为: 224 × 224 × 64 224\times 224\times 64 224×224×64。
(3)Conv1_2:卷积核维度为 3 × 3 × 64 3\times 3\times 64 3×3×64(卷积核的深度要与上层输出且输入本层的深度一致),步长1,Padding为1。根据卷积核计算公式:
W o u t = W i n − W f i l t e r + 2 P S + 1 = 224 − 3 + 2 × 1 1 + 1 = 224 W_{out}=\frac{W_{in}-W_{filter}+2P}{S}+1=\frac{224-3+2\times 1}{1}+1=224 Wout=SWin−Wfilter+2P+1=1224−3+2×1
VGG16卷积神经网络详解

本文详细解析了VGG16卷积神经网络的结构与工作原理,包括卷积层、池化层及全连接层的计算过程,并提供了PyTorch实现代码。
最低0.47元/天 解锁文章
1096

被折叠的 条评论
为什么被折叠?



