卷积神经网络之VGG

VGG提出了可以通过重复使用简单的基础块来构建深度模型的思路。

VGG模型

VGG块的组成规律是:

  • 连续使用数个相同的填充为1,、窗口形状为3*3的卷积层
  • 后接一个步幅为2、窗口形状为2*2的最大赤化层

卷积层保持输入的宽和高不变,而池化层对其减半。

VGG根据网络层数不一有不同的版本,其中VGG-11是由8个卷积层+3个全连接层组成。

下图展示了VGG-11、VGG-13、VGG-16、VGG-19的网络结构与具体参数。

代码

vgg_block函数来实现这个基础的VGG块,它可以指定卷积层的数量num_convs和输出通道数num_channels

import d2lzh as d2l
from mxnet import gluon, init, nd
from mxnet.gluon import nndef vgg_block(num_convs, num_channels):blk = nn.Sequential()for _ in range(num_convs):blk.add(nn.Conv2D(num_channels, kernel_size=3,padding=1, activation='relu'))blk.add(nn.MaxPool2D(pool_size=2, strides=2))return blk

VGG-11网络:

conv_arch = ((1, 64), (1, 128), (2, 256), (2, 512), (2, 512))
def vgg(conv_arch):net = nn.Sequential()# 卷积层部分for (num_convs, num_channels) in conv_arch:net.add(vgg_block(num_convs, num_channels))# 全连接层部分net.add(nn.Dense(4096, activation='relu'), nn.Dropout(0.5),nn.Dense(4096, activation='relu'), nn.Dropout(0.5),nn.Dense(10))return netnet = vgg(conv_arch)

总结:

  • 使用连续的的多个小卷积核(3×3),来代替一个大的卷积核(例如(5×5)。
  • 使用小的卷积核的其感受野必然变小。所以,VGG中就使用连续的3×3卷积核,来增大感受野。
  • VGG认为2个连续的3×3卷积核能够替代一个5×5卷积核,三个连续的3×3能够代替一个7×7。
  • 通道数更多,特征度更宽,更多的通道数表示更丰富的图像特征。
  • VGG-11通过5个可以重复使用的卷积块来构造网络
  • 根据卷积层个数和输出通道数的不同可以定义出不同的VGG模型

代码参考自:<<动手学深度学习>>

其他经典网络结构:

卷积神经网络之 LeNet卷积神经网络之(稠密连接网络)DenseNet

卷积神经网络之(深度卷积神经网络)AlexNet

卷积神经网络之(使用重复元素的网络)VGG

卷积神经网络之残差网络ResNet详解

卷积神经网络之(使用重复元素的网络)VGG相关推荐

  1. [pytorch、学习] - 5.7 使用重复元素的网络(VGG)

    参考 5.7 使用重复元素的网络(VGG) AlexNet在LeNet的基础上增加了3个卷积层.但AlexNet作者对它们的卷积窗口.输出通道数和构造顺序均做了大量的调整.虽然AlexNet指明了深度 ...

  2. (pytorch-深度学习系列)使用重复元素的网络(VGG)

    使用重复元素的网络(VGG) VGG的名字来源于论文作者所在的实验室Visual Geometry Group,VGG提出了可以通过重复使用简单的基础块来构建深度模型的思路. VGG Block(VG ...

  3. 深度学习之卷积神经网络(12)深度残差网络

    深度学习之卷积神经网络(12)深度残差网络 ResNet原理 ResBlock实现 AlexNet.VGG.GoogleLeNet等网络模型的出现将神经网络的法阵带入了几十层的阶段,研究人员发现网络的 ...

  4. VGG使用重复元素的网络

    使用重复元素的网络(VGG) 1.VGG组网原理 #使用重复元素的网络(VGG) #VGG块的组成规律:连续使用数个相同的填充为1.窗口形状为33的卷积层后接上一个步幅为2,窗口形状为22的最大池化层 ...

  5. Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet、AlexNet、VGG、NIN、GoogleNet、ResNet)——从代码认知CNN经典架构

    Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet.AlexNet.VGG.NIN.GoogleNet.ResNet)--从代码认知CNN经典架构 目录 CNN经典算 ...

  6. 《动手学深度学习》第十九天---使用重复元素的网络(VGG)

    卷积神经网络由卷积核来提取特征,通过池化层对显著特征进行提取,经过多次的堆叠,得到比较高级的特征,最后可以用分类器来分类.这是CNN的一个大概流程,其具体实现的结构是丰富多样的,但总的思想是统一的. ...

  7. 卷积神经网络五之典型的CNN网络

    一.典型的CNN网络 1.开山之作:LeNet-5 1998 LeNet-5 是一个非常成功的神经网络模型. 基于 LeNet-5 的手写数字识别系统在 90 年代被美国很多银行使用,用来识别支票上面 ...

  8. 卷积神经网络特征图可视化(自定义网络和VGG网络)

    借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么. 自定义网络特征可视化 代码: # coding: utf-8from keras.mo ...

  9. 深度学习笔记其六:现代卷积神经网络和PYTORCH

    深度学习笔记其六:现代卷积神经网络和PYTORCH 1. 深度卷积神经网络(AlexNet) 1.1 学习表征 1.1 缺少的成分:数据 1.2 缺少的成分:硬件 1.2 AlexNet 1.2.1 ...

最新文章

  1. C# Graphic 绘制圆、三角形、椭圆、图片
  2. Docker(三):Dockerfile 命令详解
  3. 对Lucene PhraseQuery的slop的理解[转载]
  4. redis命令-key操作
  5. Memcached学习一:Memcached安装使用
  6. mysql触发器如何获取当前表名_Mysql如何获取中位数
  7. OpenShift 4 之 GitOps(8)用ArgoCD实现的应用迁移、金丝雀部署、DR
  8. org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
  9. unity相关的javascript脚本:unity圣典学习笔记————MonoBehaviour
  10. python 爬取种子_Python开发实例分享bt种子爬虫程序和种子解析
  11. 身份证校验码计算:根据身份证前17位计算第18位校验码-c++实现
  12. 使用three.js创建一个正方体
  13. 成都Uber优步司机奖励政策(3月11日)
  14. 史上最简单的Git入门教程
  15. testlink mysql配置_testlink安装及配置
  16. NetKeeper校园网连接不上,出现Sorry, this application cannot run under a Virtual Machin
  17. 智能驾驶事故频发,AEB为何无法「兜底」安全
  18. 你的项目刚刚启动?是时候考虑Globalization了! 1
  19. ret和retf指令
  20. SumperMap基本编程

热门文章

  1. 解决模拟器安装不了apk
  2. jQuery.show()详解
  3. 充值系列——充值系统业务逻辑层实现(三)
  4. ios企业签名在线签名网站有哪些?
  5. 华为交换机配置命令汇总
  6. 比尔盖茨的11条人生箴言
  7. EAI Dashgo D1环境搭建/键盘控制/rplidar a1 a2建图导航详细教程
  8. php show.bs.popover,POP提示 (Popover)
  9. 投资30万、囤鞋70双,我被Web3“走赚游戏”套路了?
  10. linux编译blas,在Linux中lapack / blas / openblas从源代码正确安装 – 用新的系统库替换系统库...