-接上一篇AlexNet现实mnist手写识别
- 使用经典模型VGGNet模型实现相同的功能
- 先简单介绍一下,今天的主角VGGNet,曾获得2014年ImageNet亚军
- 原论文地址传送门
- 上图看看VGGNet系列模型的结构:
- 下面是参数个数比较
- 先看看VGGNet内部的比较
- A和A-LRN的比较,只有一个LRN的差异,在经过多次的训练比较发现,LRN增加了复杂度,损耗内存,存在的意义不是很大
- B与C相比较多使用了几个1X1的卷积层,在输入输出维度不变的情况下,增加非线性变换,提高网络的表达能力.
- C和D相比较还是C的特征提取会更好一些,虽然1X1的卷积很好很有效,但是相比较于3X3的,还是3X3的会更好一些
- 其他的几个相比较,模型越来越深
- 可训练参数的个数相差不大
VGG对于AlexNet的优势
- 通过重复使用简单的Block块来构建深度模型
- 使用了更小的卷积核
- 小池化核。AlexNet的3x3的池化核,VGG全部为2x2的池化核
- 模型深度更深,表达能力更强
- 由于使用更小的卷积核来构建和构建更深的网络,由多个小的卷积核堆叠来增大accept field(3个33的卷积核的堆叠accept field 和 77的accept field 一样大小)
- 由于使用小的卷积核,降低了可训练参数个数,并增加了更多的非线性变化,提高了对特征的学习能力
- accept field 示意图:
下面是VGG11的代码:
import time
import torch
fro