卷积核、池化层输出尺寸计算公式,VGG16神经网络结构图及各层推导及PyTorch实现代码

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

卷积层

  使用卷积处理图像,输出的图像的尺寸为:

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=SWinWfilter+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=SHinHfilter+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)。

  图像在输入卷积层之前,有两种边界像素填充方式:

  1. Same:在输入的图像最外层加上指定层数的像素值全为0的边界,这是为了让图像的全部像素都能被卷积核捕捉到;
  2. 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=SWinWfilter+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=SHinHfilter+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一共八层的结构,增加了层数。增加层数和更小的卷积核能有效提升模型的性能。

Input
Conv1_1:64x224x224
Conv1_2:64x224x224
Maxpool1:64x112x112
Conv2_1:128x112x112
Conv2_2:128x112x112
Maxpool2:128x56x56
Conv3_1:256x56x56
Conv3_2:256x56x56
Conv3_3:256x56x56
Maxpool3:256x28x28
Conv4_1:512x28x28
Conv4_2:512x28x28
Conv4_3:512x28x28
Maxpool4:512x14x14
Conv5_1:512x14x14
Conv5_2:512x14x14
Conv5_3:512x14x14
Maxpool5:512x7x7
FC13:4096
FC14:4096
FC15:1000
Output-Softmax:1000

  分析:

(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=SWinWfilter+2P+1=12243+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=SHinHfilter+2P+1=12243+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=SWinWfilter+2P+1=12243+2×1

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值