一、特点

1、对AlexNet改进,在第一个卷积层用了更小的卷积核和stride
2、多尺度训练(训练和测试时,采用整张图的不同尺度)

由此,VGG结构简单,提取特征能力强,应用场景广泛

由单尺度测试结果对比:

二、 不同结构的对比

VGG一共提供了6个网络版本,一次探究不同网络的效果对比。
下面简要分析一下各个版本的网络配置细节:

结构 A:与 AlexNet 类似,卷积层分为5个stage,3个全连接层,不同的是,卷积层用的都是3x3大小的卷积核;
结构 A-LRN:保留 AlexNet 中的 LRN 操作,其他结构与A相同;
结构 B:在 A 的 stage2 和 stage3 分别增加一个3x3的卷积层,共有10个卷积层了;
结构C:在 B 的基础上,stage3,stage4,stage5 分别增加一个1x1的卷积层,有13个卷积层,总计16层;
结构D:在 C 的基础上,stage3,stage4,stage5 分别增加一个3x3的卷积层,有13个卷积层,总计16层;
结构E:在 D 的基础上,stage3,stage4,stage5 分别再增加一个3x3的卷积层,有16个卷积层,总计19层。

各结构效果对比:

A 与 A-LRN 比较:A-LRN 结果没有 A 好,说明 LRN 作用不大;
A 与 B, C, D, E 比较:A 是这当中层数最少的,相比之下 A 效果不如 B,C,D,E,说明层数越深越好;
B 与 C 比较:增加 1x1 卷积核,增加了额外的非线性提升效果;
C与D比较:3x3 的卷积核(结构D)比 1x1(结构C)的效果好。(注意!!!!)
C、D、E之间的比较,多尺度会提高准确率

三、对卷积核优点的讨论

1、为什么使用3×3的卷积核?
(1)3个3×3的卷积核的感受野与一个7×7的卷积核的感受野等效,但是中间加入了激活函数,与一个7×7的卷积核相比,深度更深且增加了非线性
(2)参数量减少:
(C×3×3×C)×3 = 27C^2
C×7×7×C = 49C^2
2、1×1卷积核的作用(用其他的卷积核虽然也能实现这两个功能,但是参数量大)
(1)增加非线性
(2)升维和降维

四、训练数据预处理

第一步:将图片同性缩放,最小的边长为256
第二步:随机截取224×224的图像块
第三步:对裁剪的图像块进行随机水平翻转和RGB颜色变换

补充:也可以使用dense evalation 不裁剪直接将图片放进网络,将后面的全连接层改为卷积层

四大网络VGGNet的更多相关文章

  1. CNN网络--VGGNet

    Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image ...

  2. 四大网络之Alexnet

       本文主要介绍AlextNet的一些知识,这些知识经常被忽略 一.AlextNet的创新点 (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Si ...

  3. 深度学习——卷积神经网络 的经典网络(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)

    一.CNN卷积神经网络的经典网络综述 下面图片参照博客:http://blog.csdn.net/cyh_24/article/details/51440344 二.LeNet-5网络 输入尺寸:32 ...

  4. 代理服务器基本知识普及代理IP使用方法!

    本文并未从专业角度进行详细讲解,而是从应用的角度出发来普及一些代理服务器的基本知识.文章明显是搜集多方资料的拼凑,而且比较老了,但往往越老的东西越接近事物的本质,更容易窥探到原理,对于刚接触的人来说, ...

  5. 学习世界模型,通向AI的下一步:Yann LeCun在IJCAI 2018上的演讲

    https://baijiahao.baidu.com/s?id=1606296521706399213&wfr=spider&for=pc 机器之心整理,机器之心编辑部. 人工智能顶 ...

  6. 神经网络模型(Backbone)

    自己搭建神经网络时,一般都采用已有的网络模型,在其基础上进行修改.从2012年的AlexNet出现,如今已经出现许多优秀的网络模型,如下图所示. 主要有三个发展方向: Deeper:网络层数更深,代表 ...

  7. VGGnet——从TFrecords制作到网络训练

    作为一个小白中的小白,多折腾总是有好处的,看了入门书和往上一些教程,很多TF的教程都是从MNIST数据集入手教小白入TF的大门,都是直接import MNIST,然后直接构建网络,定义loss和opt ...

  8. LeNet,AlexNet,GoogleLeNet,VggNet等网络对比

    CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...

  9. Python四大主流网络编程框架

    目前的4种主流Python网络框架:Django.Tornado.Flask.Twisted.

随机推荐

  1. 用GDB调试程序(四)

    查看栈信息————— 当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的.当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中.你可以用GDB命令 ...

  2. Windows的socket编程

    ################服务端 1.准备工作导入头文件 #include<WinSock2.h> #pragma comment(lib, "ws2_32.lib&quo ...

  3. Modelsim——工程建立和常用设置

    Modelsim是一款优秀的FPGA仿真软件,这里记录一下Modelsim的基本使用. 一.联合仿真 联合仿真,即Quartus ii自己调用Modelsim,Modelsim自动出现仿真波形. 1. ...

  4. Android--Google Map API V2使用

    一.获取API Key 1.先获取SHA-1 fingerprint 数字证书是有两种,一种是debug,还有release.前者只能用于测试:后者才可以用于实际产品. debug:在命令行中输入命令 ...

  5. 阅读笔记——《How a Facebook rejection pushed me to start and grow a profitable business in 12 months》

    阅读笔记——<How a Facebook rejection pushed me to start and grow a profitable business in 12 months> ...

  6. Python模拟知乎登录

    # -*- coding:utf-8 -*- import urllib import urllib2 import cookielib import time from PIL import Ima ...

  7. Java性能优化学习笔记

    1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控 ...

  8. Flutter:教你用CustomPaint画一个自定义的CircleProgressBar

    https://www.jianshu.com/p/2ea01ae02ffe Flutter:教你用CustomPaint画一个自定义的CircleProgressBar paint_page.dar ...

  9. 怎样用 vue-i18n这个结合vue的$t来实现通过data传值的翻译

    <el-row class="searchForm"> <template v-for="(item,index) in searchConfig&qu ...

  10. Programming Principles and Practice Using C++ Notes2

    第三章对象.类型和值 对象:用来保存一个指定类型值的一些内存单元. 类型:定义一组可能的值与一组运算(对于一个对象). 值:根据一个类型来解释的内存中的一组比特. #include <iostr ...