人工智能学习07--pytorch13--VGG网络详解及感受野的计算+pytorch实现

VGG网络详解

在这里插入图片描述
使用时用的是D的配置,十六层。

网络分成两个部分:
1、全连接层前:提取特征网络的结构
2、三层全连接层:分类网络结构
在这里插入图片描述

感受野的计算

感受野:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3个33的卷积核可以替代一个77的卷积核:
在这里插入图片描述
采用多个小的卷积核进行堆叠,得到的感受野大小相同,这可以去替代一个大的卷积核,可以节省网络的训练参数的个数。
在这里插入图片描述
在这里插入图片描述
网络结构:

  1. 输入:
    224x224大小的RGB图像。
  2. 通过两层3x3的卷积核:
    得到的特征层大小:224x224x64。由于stride和padding为1,所以高宽不变。卷积核个数为64,所以深度为64。
  3. 通过Maxpooling最大下采样:
    stride和padding为2 —> 高和宽缩减为原来一半,深度不变:112x112x64。
  4. 通过两层3x3的卷积核:
    112x112x128
  5. 通过Maxpooling最大下采样:
    56x56x128
  6. 通过三层3x3的卷积核:
    56x56x256
  7. 通过Maxpooling最大下采样:
    28x28x256
  8. 通过三层3x3的卷积核:
    28x28x512
  9. 通过Maxpooling最大下采样:
    14x14x512
  10. 通过三层3x3的卷积核(还是512个):
    14x14x512
  11. 通过Maxpooling最大下采样:
    7x7x512
  12. 连接三个全连接层:
    全连接层一和二采用的节点都是4096个;
    全连接层三1000个节点(依据ImageNet的分类任务,1000个类别)
    这1000个节点不需要加RELU函数,因为最后要通过softmax层进行激活。
  13. 加上softmax处理:将预测结果转换为概率分布。
    在这里插入图片描述

使用pytorch搭建VGG

模型部分

搭建ABDE四个配置模型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

训练部分

别人的网络可能预处理第一步R、G、B三个通道分别减去如下值:
在这里插入图片描述
为ImageNet图像数据集所有图的R、G、B三通道均值。
但此处的网络没有这么操作,因为是从头开始训练的。
如果是基于迁移学习的方式使用再训练的话,则就要减去这三个值。因为预训练的模型是基于ImageNet训练的。
在这里插入图片描述
其余的跟AlexNet里面的训练方法一样。

模型比较大,但是这里的flowers数据集比较小,没法充分训练,这里不运行了。
训练时间长,训练效果一般。
如果要用vgg的话,建议使用迁移学习的方法(resnet网络会讲)。

预测

跟之前的AlexNet网络的预测过程是一样的。

猜你喜欢

转载自blog.csdn.net/AMWICD/article/details/129777273