经典卷积神经网络

news2025/5/19 17:32:01

目录

经典卷积神经网络

一、卷积神经网络基础回顾

二、LeNet:开启 CNN 先河

三、AlexNet:突破性进展

四、ZFNet:继承与优化

五、GoogLeNet:引入 Inception 模块

六、VggNet:深度与简单结构的融合

七、ResNet:解决深层网络训练难题

八、DenseNet:促进特征复用

九、MobileNet:专注移动端应用

十、ShuffleNet:优化移动端模型

十一、SENet:聚焦通道间特征依赖

十二、实战案例与代码实现

卷积神经网络(Convolutional Neural Network,CNN)在计算机视觉领域占据着举足轻重的地位,为图像识别、目标检测等任务提供了强大的解决方案。本文深入剖析经典卷积神经网络的原理、结构及应用,涵盖 LeNet、AlexNet、ZFNet、GoogLeNet、VggNet、ResNet、DenseNet、MobileNet、ShuffleNet、SENet 等重要模型。

一、卷积神经网络基础回顾

卷积神经网络模拟视觉皮层机制,由卷积层、激活层、池化层和全连接层构成。卷积层运用卷积核提取局部特征,激活层引入非线性,池化层下采样特征图,全连接层整合特征输出预测结果。

二、LeNet:开启 CNN 先河

LeNet 是最早的卷积神经网络之一,由 Yann LeCun 提出,主要用于手写数字识别。其结构包含两个卷积层、两个池化层和三个全连接层。LeNet 的卷积层使用小尺寸卷积核提取图像边缘和纹理特征,池化层采用平均池化下采样,全连接层整合特征完成分类。LeNet 的提出为后续 CNN 的发展奠定了基础。

三、AlexNet:突破性进展

AlexNet 在 2012 年 ImageNet 挑战赛中崭露头角,凭借卓越性能推动 CNN 进入深度学习时代。它包含 5 个卷积层和 3 个全连接层,引入 ReLU 激活函数、Dropout 技术和多 GPU 训练策略。ReLU 激活函数加速训练过程,Dropout 技术有效防止过拟合,多 GPU 训练提升效率。AlexNet 的成功彰显了深度 CNN 的强大性能,激发了 CNN 领域的创新热情。

四、ZFNet:继承与优化

ZFNet 在 AlexNet 基础上改进,优化网络结构提升性能。ZFNet 调整卷积核数量和全连接层神经元数量,扩大网络宽度和深度,增强特征表达能力。它在 ImageNet 挑战赛中取得优异成绩,成为 CNN 发展的重要里程碑。

五、GoogLeNet:引入 Inception 模块

GoogLeNet 以 Inception 模块为核心,显著提升计算效率。Inception 模块融合多种尺寸卷积核和池化操作,提取多尺度特征,拓宽网络结构。GoogLeNet 的深度达 22 层,采用辅助分类器缓解梯度消失问题,加速训练收敛。它在 ImageNet 挑战赛中夺冠,凸显了 Inception 模块的优势。

六、VggNet:深度与简单结构的融合

VggNet 强调网络深度与结构一致性,使用小尺寸卷积核(3×3)和深度结构(16 - 19 层),逐层提取图像特征。VggNet 的卷积层和池化层交替使用,全连接层置于网络末端。它在 ImageNet 挑战赛中表现突出,验证了深度网络提取复杂特征的能力,为后续研究提供新方向。

七、ResNet:解决深层网络训练难题

ResNet 提出残差学习机制,通过残差块连接输入输出,缓解深层网络训练难题。残差块包含两个卷积层和一个 shortcut 连接,将输入直接加到输出上。这种设计助 ResNet 达到 100 多层,提升性能。ResNet 在 ImageNet 挑战赛中夺冠,成为 CNN 发展的又一里程碑。

八、DenseNet:促进特征复用

DenseNet 在 ResNet 基础上创新,每个层接收前面所有层的特征图,强化特征复用。其连接模式提升参数效率,减少计算量,增强特征传播和利用效率。DenseNet 在多个图像分类任务中表现出色,验证了其高效特征利用策略的优势。

九、MobileNet:专注移动端应用

MobileNet 针对移动端计算资源受限问题,采用深度可分离卷积替代传统卷积,大幅削减计算量与参数量。深度可分离卷积分解卷积操作为深度卷积和逐点卷积,降低资源消耗。MobileNet 在保持较高准确率的同时,实现高效运行,适用于移动设备场景。

十、ShuffleNet:优化移动端模型

ShuffleNet 在 MobileNet 基础上引入 channel shuffle 操作,优化特征通道交互,提升模型性能。其创新的 ShuffleUnit 模块结合逐点组卷积和通道重排技术,在降低计算成本的同时取得良好效果,进一步推动移动端深度学习应用发展。

十一、SENet:聚焦通道间特征依赖

SENet 提出通道注意力机制,通过学习通道间依赖关系,增强关键特征表达。SENet 的 SE 模块包含全局平均池化、全连接层和 sigmoid 激活函数,生成通道注意力权重,调整特征图。这种机制使 SENet 能聚焦关键特征,提升分类准确性,在 ImageNet 挑战赛中取得佳绩。

十二、实战案例与代码实现

本文为每个 CNN 模型提供实战案例与 PyTorch 代码实现,助力读者加深理解掌握应用。以 AlexNet 为例,代码如下:

import torch
import torch.nn as nn

class AlexNet(nn.Module):
    def __init__(self, num_classes=1000):
        super(AlexNet, self).__init__()
        self.features = nn.Sequential(
            nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.Conv2d(64, 192, kernel_size=5, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.Conv2d(192, 384, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.Conv2d(384, 256, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.Conv2d(256, 256, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
        )
        self.classifier = nn.Sequential(
            nn.Dropout(),
            nn.Linear(256 * 6 * 6, 4096),
            nn.ReLU(inplace=True),
            nn.Dropout(),
            nn.Linear(4096, 4096),
            nn.ReLU(inplace=True),
            nn.Linear(4096, num_classes),
        )

    def forward(self, x):
        x = self.features(x)
        x = x.view(x.size(0), 256 * 6 * 6)
        x = self.classifier(x)
        return x

# 测试 AlexNet
net = AlexNet()
input_tensor = torch.randn(1, 3, 224, 224)
output = net(input_tensor)
print(output.shape)

其他模型的代码实现类似,通过定义网络结构、前向传播函数,构建模型并输入数据测试输出。这些实战案例为实际应用开发奠定基础。

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

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

相关文章

IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 LiteOS Studio + GCC + JLink

文章目录 概述LiteOS Studio不推荐?安装和使用手册呢?HCIP实验的源码呢? 软件和依赖安装软件下载软件安装插件安装依赖工具-方案2依赖工具-方案1 工程配置打开或新建工程板卡配置组件配置编译器配置-gcc工具链编译器配置-Makefile脚本其他配置编译完成 …

算法加训之最短路 上(dijkstra算法)

目录 P4779 【模板】单源最短路径(标准版)(洛谷) 思路 743. 网络延迟时间(力扣) 思路 1514.概率最大路径(力扣) 思路 1631.最小体力消耗路径 思路 1976. 到达目的地的方案数 …

QT+Opencv 卡尺工具找直线

QTOpencv 卡尺工具找直线 自己将别的项目中,单独整理出来的。实现了一个找直线的工具类。 功能如下:1.添加图片 2.添加卡尺工具 3.鼠标可任意拖动图片和卡尺工具 4.可调整卡尺参数和直线拟合参数 5.程序中包含了接口函数,其他cpp文件传入相…

GraphPad Prism简介、安装与工作界面

《2025GraphPad Prism操作教程书籍 GraphPad Prism图表可视化与统计数据分析视频教学版GraphPad Prism科技绘图与数据分析学术图表 GraphPadPrism图表》【摘要 书评 试读】- 京东图书 GraphPad Prism统计数据分析_夏天又到了的博客-CSDN博客 1.1 GraphPad Prism简介 GraphP…

esp32课设记录(一)按键的短按、长按与双击

课程用的esp32的板子上只有一个按键,引脚几乎都被我用光了,很难再外置按键。怎么控制屏幕的gui呢?这就得充分利用按键了,比如说短按、长按与双击,实现不同的功能。 咱们先从短按入手讲起。 通过查看原理图,…

React19源码系列之 API(react-dom)

API之 preconnect preconnect – React 中文文档 preconnect 函数向浏览器提供一个提示,告诉它应该打开到给定服务器的连接。如果浏览器选择这样做,则可以加快从该服务器加载资源的速度。 preconnect(href) 一、使用例子 import { preconnect } fro…

supervisorctl守护进程

supervisorctl守护进程 1 安装 # ubuntu安装: sudo apt-get install supervisor 完成后可以在/etc/supervisor文件夹,找到supervisor.conf。 如果没有的话可以用如下命令创建配置文件(注意必须存在/etc/supervisor这个文件夹) s…

下载的旧版的jenkins,为什么没有旧版的插件

下载的旧版的jenkins,为什么没有旧版的插件,别急 我的jenkins版本: 然后我去找对应的插件 https://updates.jenkins.io/download/plugins/ 1、Maven Integration plugin: Maven 集成管理插件。 然后点击及下载成功 然后 注意&…

【ALINX 实战笔记】FPGA 大神 Adam Taylor 使用 ChipScope 调试 AMD Versal 设计

本篇文章来自 FPGA 大神、Ardiuvo & Hackster.IO 知名博主 Adam Taylor。在这里感谢 Adam Taylor 对 ALINX 产品的关注与使用。为了让文章更易阅读,我们在原文的基础上作了一些灵活的调整。原文链接已贴在文章底部,欢迎大家在评论区友好互动。 在上篇…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集引言一、字符串处理函数1.1 基础操作函数1.2 模式匹配函数(正则表达式)二、数值计算函数2.1 基础运算函数2.2 统计相关函数三、日期与时间函…

【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性

注:仅学习使用~ 前情提要: 【时空图神经网络 & 交通】相关模型1:STGCN | 完全卷积结构,高效的图卷积近似,瓶颈策略 | 时间门控卷积层:GLU(Gated Linear Unit),一种特殊的非线性门控单元目录 STSGCN-2020年1.1 背景1.2 模型1.2.1 问题背景:现有模型存在的问题1.2…

docker 学习记录

docker pull nginx docker 将本地nginx快照保存到当前文件夹下 docker save -o nginx.tar nginx:latestdocker 将本地nginx 加载 docker load -i nginx.tar docker运行nginx在80端口 docker run --name dnginx -p 80:80 -d nginxredis启动 docker run --name mr -p 6379:6379 -…

南京邮电大学金工实习答案

一、金工实习的定义 金工实习是机械类专业学生一项重要的实践课程,它绝非仅仅只是理论知识在操作层面的简单验证,而是一个全方位培养学生综合实践能力与职业素养的系统工程。从本质上而言,金工实习是学生走出教室,亲身踏入机械加…

世界模型+大模型+自动驾驶 论文小汇总

最近看了一些论文,懒得一个个写博客了,直接汇总起来 文章目录 大模型VLM-ADVLM-E2EOpenDriveVLAFASIONAD:自适应反馈的类人自动驾驶中快速和慢速思维融合系统快系统慢系统快慢结合 世界模型End-to-End Driving with Online Trajectory Evalu…

C++函数三剑客:缺省参数·函数重载·引用的高效编程指南

前引:在C编程中,缺省参数、函数重载、引用是提升代码简洁性、复用性和效率的三大核心机制。它们既能减少冗杂的代码,又能增强接口设计的灵活性。本文将通过清晰的理论解析与实战案列,带你深入理解这三者的设计思想、使用场景以及闭…

SWUST数据结构下半期实验练习题

1068: 图的按录入顺序深度优先搜索 #include"iostream" using namespace std; #include"cstring" int visited[100]; char s[100]; int a[100][100]; int n; void dfs(int k,int n) {if(visited[k]0){visited[k]1;cout<<s[k];for(int i0;i<n;i){i…

机器学习 Day18 Support Vector Machine ——最优美的机器学习算法

1.问题导入&#xff1a; 2.SVM定义和一些最优化理论 2.1SVM中的定义 2.1.1 定义 SVM 定义&#xff1a;SVM&#xff08;Support Vector Machine&#xff0c;支持向量机&#xff09;核心是寻找超平面将样本分成两类且间隔最大 。它功能多样&#xff0c;可用于线性或非线性分类…

答题pk小程序道具卡的获取与应用

道具卡是答题PK小程序中必不可少的一项增加趣味性的辅助应用&#xff0c;那么道具卡是如何获取与应用的呢&#xff0c;接下来我们来揭晓答案&#xff1a; 一、道具卡的获取&#xff1a; 签到获取&#xff1a;在每日签到中签到不仅可获得当日的签到奖励积分&#xff0c;同时连…

leetcode3265. 统计近似相等数对 I-medium

1 题目&#xff1a;统计近似相等数对 I 官方标定难度&#xff1a;中 给你一个正整数数组 nums 。 如果我们执行以下操作 至多一次 可以让两个整数 x 和 y 相等&#xff0c;那么我们称这个数对是 近似相等 的&#xff1a; 选择 x 或者 y 之一&#xff0c;将这个数字中的两个…

【架构篇】代码组织结构设计

代码组织结构设计&#xff1a;模块化分层与高效协作实践 摘要 本文以Java项目为例&#xff0c;解析后端代码组织的标准化结构&#xff0c;涵盖模块划分原则、依赖管理策略及实际应用场景。通过模块化设计提升代码可维护性、团队协作效率及系统扩展能力。 一、模块化设计的核心…