入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。

✨完整代码在我的github上,有需要的朋友可以康康✨

https://github.com/tt-s-t/Deep-Learning.git

目录

一、VGG网络的背景

二、VGG网络结构

1、各网络结构参数图示

2、输入

3、双层 —— 一层卷积+(一层卷积+最大池化)

4、三层 —— 两层卷积+(一层卷积+最大池化) 

5、全连接层——分类判决

6、拓展:VGG16_bn

三、VGG网络的亮点——连续小卷积核代替大卷积核

四、VGG网络的不足

五、VGG代码实现


一、VGG网络的背景

AlexNet问世之后,很多学者通过改进AlexNet的网络结构来提高自己的准确率,主要有两个方向:小卷积核和多尺度。

而VGG的作者们则选择了另外一个方向,即加深网络深度。

VGGNet的网络结构简单、规整且高效。VGGNet较为典型的网络结构主要有VGG16和VGG19(两者并没有本质上的区别,只是网络深度不一样)。


二、VGG网络结构

1、各网络结构参数图示

VGG详解-编程之家

 接下来以VGG16为例子来进行讲解

2、输入

(224,224,3)的RGB图像作为输入

3、双层 —— 一层卷积+(一层卷积+最大池化)

VGG详解-编程之家

 这里总共4层。

都是使用卷积核为(3,3)的卷积层,每过一层(不含池化)尺寸不变,每过一层池化尺寸减半。

因此(224,224,3)->(224,224,64)->(112,112,64)->(112,112,128)->(56,56,128)

4、三层 —— 两层卷积+(一层卷积+最大池化) 

VGG详解-编程之家

这里总共9层。

因此(56,56,128)-> (56,56,256)-> (28,28,256)-> (28,28,512)-> (14,14,512)-> (7,7,512)

5、全连接层——分类判决

VGG详解-编程之家

 3层全连接层,将提取到的特征进行相应的整合判断,得出归属每一类的得分值。

6、拓展:VGG16_bn

就是在提取特征的每一层多加了BatchNorm2d层。

BatchNorm2d层的作用是:进行批量标准化处理(对于所有的batch中样本的同一个channel的数据元素进行标准化处理,即如果有C个通道,无论batch中有多少个样本,都会在通道维度上进行标准化处理,一共进行C次。),这样能把输入的数限制在一个范围内,把数据重新变为正态分布。

公式:

VGG详解-编程之家

具体结构如下:

VGG详解-编程之家

VGG详解-编程之家


三、VGG网络的亮点——连续小卷积核代替大卷积核

采用连续的几个3×3的卷积核代替AlexNet中的较大卷积核(11×11,7×7,5×5)

对于给定的感受野,采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层(3个3*3卷积附带3个ReLU,而一个7*7卷积只附带一个ReLU)可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。

在VGG中,使用了3个3×3卷积核来代替7×7卷积核,使用了2个3×3卷积核来代替5*5卷积核,这样可以在保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果。

✨替代原因✨

VGG详解-编程之家

 如图所示,最上面的那个特征最终是由下面5*5的特征得到的,这样的效果跟一层5*5卷积的效果一样。

参数:3*3*2<5*5


四、VGG网络的不足

耗费更多计算资源,并且使用了更多的参数(这里不是因为多层3×3卷积),导致更多的内存占用。其中绝大多数的参数都是来自于第一个全连接层。


五、VGG代码实现

详见

https://github.com/tt-s-t/Deep-Learning.git

中的VGG文件夹。

这里只展示模型架构

import torch
import torch.nn as nnclass VGG(nn.Module):def __init__(self):super().__init__()self.features = nn.Sequential(nn.Conv2d(3,64,(3,3),padding=1),nn.ReLU(),nn.Conv2d(64,64,(3,3),padding=1),nn.ReLU(),nn.MaxPool2d(2,2),nn.Conv2d(64,128,(3,3),padding=1),nn.ReLU(),nn.Conv2d(128,128,(3,3),padding=1),nn.ReLU(),nn.MaxPool2d(2,2),nn.Conv2d(128,256,(3,3),padding=1),nn.ReLU(),nn.Conv2d(256,256,(3,3),padding=1),nn.ReLU(),nn.Conv2d(256,256,(3,3),padding=1),nn.ReLU(),nn.MaxPool2d(2,2),nn.Conv2d(256,512,(3,3),padding=1),nn.ReLU(),nn.Conv2d(512,512,(3,3),padding=1),nn.ReLU(),nn.Conv2d(512,512,(3,3),padding=1),nn.ReLU(),nn.MaxPool2d(2,2),nn.Conv2d(512,512,(3,3),padding=1),nn.ReLU(),nn.Conv2d(512,512,(3,3),padding=1),nn.ReLU(),nn.Conv2d(512,512,(3,3),padding=1),nn.ReLU(),nn.MaxPool2d(2,2))self.classifier = nn.Sequential(nn.Linear(25088,4096),nn.ReLU(),nn.Dropout(p=0.5),nn.Linear(4096,4096),nn.ReLU(),nn.Dropout(p=0.5),nn.Linear(4096,1000))def forward(self, x):x = self.features(x)x = torch.flatten(x, start_dim=1)x = self.classifier(x)return x

欢迎大家在评论区批评指正,谢谢大家~

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/336803.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

VGG详解-编程之家

VGG详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 ✨完整代码在我的github上,有需要的朋友可以康康✨ https://github.com/tt-s-t/Deep-Learning.git 目录
一、VGG网络的……

VGG详解-编程之家

【ES6】模块化语法(默认、按需导入import导出export的操作)

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:ES6模块化语法(默认、按需导入导出的操作) 本文速览: 目录
本文速览&#x……

VGG详解-编程之家

Java 并发编程 (一)Semaphore和Exchanger的使用

Semaphore和Exchanger的使用
Semaphore
功能介绍 Semaphore 主要作用就是限制线程并发数量。 Semaphore 的构造函数中permits 可以控制最大并发数。每个线程可以acquire指定数量的 permit 。但是acquire n个 则需要释放n个。防止被阻塞 public class MySemaphore {// permits……

VGG详解-编程之家

OSCS开源安全周报第24期:XStream 栈缓冲区溢出漏洞

本周安全态势综述
OSCS 社区共收录安全漏洞 11 个,公开漏洞值得关注的是 XStream < 1.4.20 栈缓冲区溢出漏洞(CVE-2022-41966),Linux Kernel ksmbd模块存在任意代码执行漏洞(CVE-2022-47939),Squid 存在整数溢出漏……

VGG详解-编程之家

内核源码解读(10)percpu_page_set分析

文章目录背景数据结构pcp的初始化流程背景
Linux系统中0阶内存分配需求是最多的, 而且经常存在频繁分配释放的行为,如果每次都去伙伴系统中申请,会经常需要获取zone->lock锁住整个zone区域。随着CPU核心数的增加,伙伴系统锁竞……

VGG详解-编程之家

2022年区块链白皮书详解及内容分享

目录 导 读
技术创新稳步推进
应用路径日益清晰
产业趋稳资本活跃
多地加快战略布局
白皮书具体内容如下 导 读 区块链是构建信任的基石,是实现信用传递,价值传递的可信网络。区块链聚焦构建安全、可靠的区块链基础设施,让企业、政府快速……

VGG详解-编程之家

20230103编译ToyBrick的TB-RK3588X的Andorid12的LOG05

20230103编译ToyBrick的TB-RK3588X的Andorid12的LOG05 编译环境:Ubuntu18.04.6 64位 内存:48GB ^ { /home/rootroot/android12-rk3588-new/out/soong/.intermediates/frameworks/base/cmds/idmap2/libidmap2_protos/android_arm6……

VGG详解-编程之家

2023.01/1802. 有界数组中指定下标处的最大值

1802. 有界数组中指定下标处的最大值 题意: 给你三个正整数 n、index 和 maxSum 。你需要构造一个同时满足下述所有条件的数组 nums(下标 从 0 开始 计数): nums.length nnums[i] 是 正整数 ,其中 0 < i < nabs(nums[i] – ……

VGG详解-编程之家

回顾2022,那些令人印象深刻的AI突破

文 | 付奶茶2022年是令人印象深刻的一年。在这一年中,我们目睹了许多前所未有的AI模型的出现,这些模型不断刷新着人类对AI力量的认知。关于这一年中最好的工作,每个人都有自己不同的看法。在这篇文章中,我们跟随Alan D. Thompson在……

VGG详解-编程之家

3d打印热床的PEI/玻璃/晶格玻璃/柔性平台/弹簧钢板如何选择

▼ 目前主流的打印平台的几个材料,先汇总一下我自己使用下来的经验(打分:满分5分): 玻璃不涂胶/涂胶晶格玻璃不涂胶/涂胶…

VGG详解-编程之家

LC-1157. 子数组中占绝大多数的元素(二分查找+随即猜,摩尔投票+线段树,upper_bound和lower_bound函数)

文章目录[1157. 子数组中占绝大多数的元素](https://leetcode.cn/problems/online-majority-element-in-subarray/)统计每个元素的索引-超时二分查找 随机猜摩尔投票 线段树[剑指 Offer 39. 数组中出现次数超过一半的数字](https://leetcode.cn/problems/shu-zu-zhong-chu-xi……

VGG详解-编程之家

杭州旭航集团,申请纳斯达克IPO上市,募资9800万美元

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,为中国企业提供数字内容营销服务的杭州旭航网络科技有限公司的控股公司Xuhang Holdings Ltd(以下简称:旭航集团),近期已向美国证券交易委员会(SEC)提……

VGG详解-编程之家

深度学习快速参考:11~13

原文:Deep Learning Quick Reference 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何实现目……

VGG详解-编程之家

基于copula的风光联合场景生成与缩减

目录
1 主要内容
风光出力场景生成方法
2 部分程序
3 程序结果
4 程序链接
点击直达! 1 主要内容
该程序方法复现《融合风光出力场景生成的多能互补微网系统优化配置》风光出力场景生成部分,目前大多数研究的是不计风光出力之间的相关性影响&amp……

VGG详解-编程之家

TS 使用自动提示生成对象中的键

TS 使用自动提示生成对象中的键
使用 plain object 而不是 class 的原因主要是在于 redux 中保存的对象需要为可序列化的对象。当然,具体操实现的时候肯定是可以无视这个需求的,不过 Redux 团队强烈建议使用可序列化对象,具体的官方文档说明……

VGG详解-编程之家

Spring Boot概述(一)

1. SpringBoot 概述
1.1 SpringBoot 概念
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的……

VGG详解-编程之家

计算机笔试/面试常见逻辑题/智力题汇总

说明:按种类汇总,难度不分先后,做了分级罗列,方便后续扩充,大家有比较有意思的题目可以在讨论区讨论。 下面有的题题解相对复杂的直接参考了网上的一些解答,而有的题解我认为并不好的也做了补充&#xff0c……

VGG详解-编程之家

OpenAI文档翻译——搭建第一个自己的ChatGPT应用

这篇主要是讲了重头到位创建一个基于OpenAI API的应用程序的过程,同时给出了Node.js、Python版本的实例代码。应用程序的构建总体来说是很简单的就是一个接口调用,前提是我们需要提供密匙。
如果想要获取更好的结果返回一个是可以给模型提供一些列子从而……

VGG详解-编程之家

python以及PyCharm工具的环境安装与配置

这里以Windows为例
Python的安装
当然是到Python官网下载咯,https://www.python.org/downloads/点我直达,如图: 可以下载最新版本,可以下拉找到之前特定的版本安装,如图: 这里先择的是最新版的进行安装……

VGG详解-编程之家

JavaScript【六】JavaScript中的字符串(String)

文章目录🌟前言🌟字符串(String)🌟单引号和双引号的区别🌟属性🌟 length :字符串的长度🌟 方法🌟 str.charAt(index);🌟 str.charCodeAt(index);🌟 String.fromCharCode(……