现代神经网络总结(AlexNet VGG GoogleNet ResNet的区别与改进)

devtools/2024/10/18 18:24:48/

VGG NIN GoogleNet

1.VGG,NIN,GoogleNet的块结构图对比(注意:无AlexNet)
![[1713922184273.png]]

这些块带来的区别与细节

AlexNet未使用块,主要对各个层进行了解:
卷积:捕捉特征
relu:增强非线性
池化层:减少计算量
norm:规范数据分布
全连接层:分类VGG块的改善(对比AlexNet):
1.使用VGG块,更加的符合封装思想
2.VGG块使用更小的卷积核,可以捕捉更多细节
3.因为不断累加VGG块的原因,使得VGG可以比AlexNet更深
4.输入输出形状更加有规律NIN块的改善(对比VGG):
1.训练的参数更少,且捕捉了更深的特征(使用了1x1卷积)
2.减少了模型中的参数数量(全局平均池化层)
原因:参数共享(可以查看参考视频,方便理解)Googlenet(对比VGG):
1.带来了多种卷积对应的多种特征(既不同尺度下的特征)(同一层内并行地应用多种卷积核尺寸和池化操作)

3.7 特征图尺寸计算与参数共享_哔哩哔哩_bilibili

2.代码对比
AlexNet:

代码块:(卷积+最大池化层)nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),nn.MaxPool2d(kernel_size=3, stride=2)输出:(全连接分类)nn.Flatten(),nn.Linear(6400, 4096), nn.ReLU()

VGG

代码块:(n层卷积层+1层最大池化层)nn.Conv2d(in_channels, out_channels,kernel_size=3, padding=1)nn.ReLU()nn.MaxPool2d(kernel_size=2,stride=2)
输出:(全连接层)nn.Flatten(),nn.Linear(6400, 4096), nn.ReLU()

NIN

代码块:(卷积层+2个1x1卷积核组成的卷积层)nn.Conv2d(in_channels, out_channels, kernel_size, strides, padding),nn.ReLU(),nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU(),nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU()输出:(NIN块+最大池化层+flatten)nin_block(384, 10, kernel_size=3, strides=1, padding=1), nn.AdaptiveAvgPool2d((1, 1)), nn.Flatten()

GoogleNet

代码块:(线路1+线路2+线路3+线路4的结果横向拼接)
torch.cat((p1, p2, p3, p4), dim=1)输出:(最后是全连接层)
net = nn.Sequential(b1, b2, b3, b4, b5, nn.Linear(1024, 10))

7.4. 含并行连结的网络(GoogLeNet) — 动手学深度学习 2.0.0 documentation (d2l.ai)
注意:

以上所有得到的的都是分类映射,一般要再经过一次softmax才能得到分类结果,但softmax一般包含再网络定义的损失函数中了 既:
loss = nn.CrossEntropyLoss()时 softmax会被自动调用

ResNet

在上面三层神经网络之后得到的疑惑
->神经网络越深,越复杂总能改进精度吗?

如沐神的图,F1,F2的范围指的是对应网络的取值,f指的是真实值。
神经网络复杂度F1<F2,但是可以很明显看到F3没有F4复杂,但是F3离真实值更近。所以答案是否定的为了让神经网络越深,越复杂总能改进精度实现,如图2的思想就能满足,其实很简单:F2总是比F1取值范围大且F2包含F1就好了,既f(x)+x

在这里插入图片描述

ResNet的表现是:
![[1714099509490.png]]

注意:
1.如果f(x)与x的通道数不同 使用1X1卷积来改变通道数
2.如果f(x)与x的高宽不同 使用padding=0来扩充高宽

http://www.ppmy.cn/devtools/22686.html

相关文章

数据库:实验二

一、实验2.1 数据查询 1、要求 以School数据库为例&#xff0c;在该数据库中存在四张表格&#xff0c;分别为&#xff1a; 表STUDENT(sid, sname, email, grade);表TEACHERS(tid, tname, email, salary);表COURSES(cid, cname, hour);表CHOICES(no, sid, tid, cid, score) 在…

数据库的嵌套查询(子查询),分组查询和统计查询—学生选课

学生选课数据库中的表的结构参考学生选课数据库的定义和维护 1.嵌套查询 1.1查询选修了数据库原理与应用课程的学生学号和姓名 SELECT sno 学号, sname 姓名 FROM student WHERE sno IN(SELECT snoFROM SCINNER JOIN Course c ON c.cno SC.cno AND c.cname 数据库原理与应…

Debezium分享系列之:Debezium2.6稳定版本SQLSerer数据库Debezium connector核心知识点

Debezium分享系列之:Debezium2.6稳定版本SQLSerer数据库Debezium connector核心知识点 一、综述二、snapshot.mode参数三、临时快照四、增量快照五、触发增量快照六、使用Kafka信令通道触发增量快照七、停止增量快照八、使用Kafka信令通道停止增量快照九、阻止快照十、读取变更…

38-1 防火墙了解

一、防火墙的概念: 防火墙(Firewall),也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668 [A]1993-12-15)。它是一种位于内部网络与外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。…

数据处理——avi视频数据转png图片格式代码,mat转png图片格式代码,图片裁剪成固定大小代码。

avi2png 处理HMC-QU数据集记录&#xff0c;每一个avi视频&#xff0c;通过xlsx中记录的初始帧和结束帧进行帧转png&#xff0c;保存在以avi视频名为名的文件夹下。 import os import cv2 import pandas as pd# 输入文件夹路径 folder_path avidata# 输出文件夹路径 output_f…

TCP四次挥手

1. 四次挥手过程 一开始客户端和服务端都是处于“ESTABLISHED”状态 第一次挥手&#xff1a;客户端主动向服务端发送连接释放请求&#xff0c;FIN标志位设置为1&#xff0c;客户端进入”FIN_WAIT1“状态。 第二次挥手&#xff1a;服务端向客户端发送确认请求&#xff0c;ACK标…

Java技术学习|消息队列|初级RabbitMQ

学习材料声明 黑马RabbitMQ快速入门教程&#xff0c;快速掌握rabbitmq、springAMQP消息中间件 是非常初级的学习&#xff0c;听说后续的高级课程会涉及到微服务之类的&#xff0c;所以等学完微服务再回来学。还有redis的高级部分也涉及了微服务&#xff0c;所以也都暂时停止学…

美国站群服务器的配置选择要点?

美国站群服务器的配置选择要点? 随着互联网的快速发展&#xff0c;站群已经成为许多网站主和企业选择的一种有效的网络推广方式。而在搭建站群时&#xff0c;选择适合的服务器配置是至关重要的。美国作为全球互联网技术的先锋之一&#xff0c;拥有先进的服务器设施和强大的网…