卷积神经网络之(使用重复元素的网络)VGG
卷积神经网络之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相关推荐
- [pytorch、学习] - 5.7 使用重复元素的网络(VGG)
参考 5.7 使用重复元素的网络(VGG) AlexNet在LeNet的基础上增加了3个卷积层.但AlexNet作者对它们的卷积窗口.输出通道数和构造顺序均做了大量的调整.虽然AlexNet指明了深度 ...
- (pytorch-深度学习系列)使用重复元素的网络(VGG)
使用重复元素的网络(VGG) VGG的名字来源于论文作者所在的实验室Visual Geometry Group,VGG提出了可以通过重复使用简单的基础块来构建深度模型的思路. VGG Block(VG ...
- 深度学习之卷积神经网络(12)深度残差网络
深度学习之卷积神经网络(12)深度残差网络 ResNet原理 ResBlock实现 AlexNet.VGG.GoogleLeNet等网络模型的出现将神经网络的法阵带入了几十层的阶段,研究人员发现网络的 ...
- VGG使用重复元素的网络
使用重复元素的网络(VGG) 1.VGG组网原理 #使用重复元素的网络(VGG) #VGG块的组成规律:连续使用数个相同的填充为1.窗口形状为33的卷积层后接上一个步幅为2,窗口形状为22的最大池化层 ...
- Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet、AlexNet、VGG、NIN、GoogleNet、ResNet)——从代码认知CNN经典架构
Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet.AlexNet.VGG.NIN.GoogleNet.ResNet)--从代码认知CNN经典架构 目录 CNN经典算 ...
- 《动手学深度学习》第十九天---使用重复元素的网络(VGG)
卷积神经网络由卷积核来提取特征,通过池化层对显著特征进行提取,经过多次的堆叠,得到比较高级的特征,最后可以用分类器来分类.这是CNN的一个大概流程,其具体实现的结构是丰富多样的,但总的思想是统一的. ...
- 卷积神经网络五之典型的CNN网络
一.典型的CNN网络 1.开山之作:LeNet-5 1998 LeNet-5 是一个非常成功的神经网络模型. 基于 LeNet-5 的手写数字识别系统在 90 年代被美国很多银行使用,用来识别支票上面 ...
- 卷积神经网络特征图可视化(自定义网络和VGG网络)
借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么. 自定义网络特征可视化 代码: # coding: utf-8from keras.mo ...
- 深度学习笔记其六:现代卷积神经网络和PYTORCH
深度学习笔记其六:现代卷积神经网络和PYTORCH 1. 深度卷积神经网络(AlexNet) 1.1 学习表征 1.1 缺少的成分:数据 1.2 缺少的成分:硬件 1.2 AlexNet 1.2.1 ...
最新文章
- C# Graphic 绘制圆、三角形、椭圆、图片
- Docker(三):Dockerfile 命令详解
- 对Lucene PhraseQuery的slop的理解[转载]
- redis命令-key操作
- Memcached学习一:Memcached安装使用
- mysql触发器如何获取当前表名_Mysql如何获取中位数
- OpenShift 4 之 GitOps(8)用ArgoCD实现的应用迁移、金丝雀部署、DR
- org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
- unity相关的javascript脚本:unity圣典学习笔记————MonoBehaviour
- python 爬取种子_Python开发实例分享bt种子爬虫程序和种子解析
- 身份证校验码计算:根据身份证前17位计算第18位校验码-c++实现
- 使用three.js创建一个正方体
- 成都Uber优步司机奖励政策(3月11日)
- 史上最简单的Git入门教程
- testlink mysql配置_testlink安装及配置
- NetKeeper校园网连接不上,出现Sorry, this application cannot run under a Virtual Machin
- 智能驾驶事故频发,AEB为何无法「兜底」安全
- 你的项目刚刚启动?是时候考虑Globalization了! 1
- ret和retf指令
- SumperMap基本编程
热门文章
- 解决模拟器安装不了apk
- jQuery.show()详解
- 充值系列——充值系统业务逻辑层实现(三)
- ios企业签名在线签名网站有哪些?
- 华为交换机配置命令汇总
- 比尔盖茨的11条人生箴言
- EAI Dashgo D1环境搭建/键盘控制/rplidar a1 a2建图导航详细教程
- php show.bs.popover,POP提示 (Popover)
- 投资30万、囤鞋70双,我被Web3“走赚游戏”套路了?
- linux编译blas,在Linux中lapack / blas / openblas从源代码正确安装 – 用新的系统库替换系统库...