当前位置: 首页 > ds >正文

AlexNet,VGG,Inceptions, ResNet, MobileNet对比

以下是几种经典卷积神经网络(CNN)架构的对比与关键特性分析:

AlexNet(2012)

model = Sequential([Conv2D(96, (11,11), strides=4, activation='relu', input_shape=(227,227,3)),MaxPooling2D((3,3), strides=2),Conv2D(256, (5,5), padding='same', activation='relu'),MaxPooling2D((3,3), strides=2),Conv2D(384, (3,3), padding='same', activation='relu'),Conv2D(384, (3,3), padding='same', activation='relu'),Conv2D(256, (3,3), padding='same', activation='relu'),MaxPooling2D((3,3), strides=2),Flatten(),Dense(4096, activation='relu'),Dense(4096, activation='relu'),Dense(1000, activation='softmax')
])

  • 首个深层CNN,5个卷积层+3个全连接层
  • 使用ReLU激活函数提升训练速度
  • 引入Dropout防止过拟合

VGG(2014)

def VGG_block(num_convs, filters):block = Sequential()for _ in range(num_convs):block.add(Conv2D(filters, (3,3), padding='same', activation='relu'))block.add(MaxPooling2D((2,2), strides=2))return block

  • 统一使用3x3小卷积核堆叠
  • 典型配置VGG16/VGG19(16/19层)
  • 参数量大(138M),全连接层占比高

Inception系列(2014-2016)

def Inception_module(x, filters):branch1 = Conv2D(filters[0], (1,1), padding='same', activation='relu')(x)branch2 = Conv2D(filters[1], (1,1), padding='same', activation='relu')(x)branch2 = Conv2D(filters[2], (3,3), padding='same', activation='relu')(branch2)branch3 = Conv2D(filters[3], (1,1), padding='same', activation='relu')(x)branch3 = Conv2D(filters[4], (5,5), padding='same', activation='relu')(branch3)branch4 = MaxPooling2D((3,3), strides=1, padding='same')(x)branch4 = Conv2D(filters[5], (1,1), padding='same', activation='relu')(branch4)return concatenate([branch1, branch2, branch3, branch4])

  • 多尺度并行卷积(1x1,3x3,5x5)
  • 引入1x1卷积降维减少计算量
  • v3加入BN层,v4结合ResNet思想

ResNet(2015)

def residual_block(x, filters, strides=1):shortcut = xx = Conv2D(filters, (3,3), strides=strides, padding='same')(x)x = BatchNormalization()(x)x = ReLU()(x)x = Conv2D(filters, (3,3), padding='same')(x)x = BatchNormalization()(x)if strides != 1 or shortcut.shape[-1] != filters:shortcut = Conv2D(filters, (1,1), strides=strides)(shortcut)shortcut = BatchNormalization()(shortcut)x = Add()([x, shortcut])return ReLU()(x)

  • 残差连接解决梯度消失问题
  • 典型结构ResNet50/101/152
  • 使用Bottleneck结构(1x1-3x3-1x1)

MobileNet(2017)

def depthwise_separable_conv(x, filters, strides):x = DepthwiseConv2D((3,3), strides=strides, padding='same')(x)x = BatchNormalization()(x)x = ReLU()(x)x = Conv2D(filters, (1,1), padding='same')(x)x = BatchNormalization()(x)return ReLU()(x)

  • 深度可分离卷积降低计算量
  • 宽度乘子调整模型大小
  • v2引入倒残差结构和线性瓶颈
  • v3加入SE模块和h-swish激活

这些架构的发展趋势表现为:网络深度增加(AlexNet 8层 → ResNet 152层)、计算效率提升(标准卷积 → 深度可分离卷积)、模块化设计(Inception/Residual块)、准确率与速度的平衡(MobileNet系列)。实际应用中需根据计算资源和精度要求选择合适的架构。

http://www.xdnf.cn/news/12145.html

相关文章:

  • Mysql的B-树和B+树的区别总结
  • 【知识点】第6章:组合数据类型
  • 【DVWA系列】——Brute Force(暴力破解)——low
  • 面试题:N叉数的最大深度
  • 软件功能鉴定需要注意哪些内容?
  • NLP学习路线图(二十四):门控循环单元(GRU)
  • 深度学习之路——CNN卷积神经网络详解
  • Python 运算符详解
  • 【Markdown 中定义函数和变量】
  • 创新驱动产业升级,国际数字影像产业园绘就文创发展新蓝图
  • Python多线程编程:从GIL锁到实战优化
  • 【openssl】升级为3.3.1,避免安全漏洞
  • 大模型高效提示词Prompt编写指南
  • Fullstack 面试复习笔记:项目梳理总结
  • 施耐德特价型号伺服电机VIA0703D31A1022、常见故障
  • 硬件学习笔记--66 MCU的DMA简介
  • unix/linux,sudo,一个强大且灵活的工具,允许一个被授权的用户以另一个用户(通常是root,即超级用户)的身份来执行命令
  • VSCode 工作区配置文件通用模板创建脚本
  • 循序渐进kubernetes之Lens
  • 华为云服务器 Java 项目部署 “版本穿越” 危机破解指南
  • STM32实战:智能环境监测站设计方案
  • spel 多层list嵌套表达式踩坑记
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·树形DP
  • 互联网大厂Java求职面试:云原生架构下的微服务网关与可观测性设计
  • SQL进阶之旅 Day 15:动态SQL与条件查询构建
  • 使用nginx代理mqtt服务
  • 算法分析与设计-动态规划、贪心算法
  • 对抗性提示:大型语言模型的安全性测试
  • 多模态大语言模型arxiv论文略读(107)
  • HTTP(超文本传输协议)详解