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

深度学习经典模型之ZFNet

1 ZFNet

1.1 模型介绍

​ ZFNet是由 M a t t h e w Matthew Matthew D . Z e i l e r D. Zeiler D.Zeiler R o b Rob Rob F e r g u s Fergus Fergus在AlexNet基础上提出的大型卷积网络,在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军(实际上原ZFNet所在的队伍并不是真正的冠军,原ZFNet以13.51%错误率排在第8,真正的冠军是 C l a r i f a i Clarifai Clarifai这个队伍,而 C l a r i f a i Clarifai Clarifai这个队伍所对应的一家初创公司的CEO又是 Z e i l e r Zeiler Zeiler,而且 C l a r i f a i Clarifai Clarifai对ZFNet的改动比较小,所以通常认为是ZFNet获得了冠军) [ 3 − 4 ] ​ ^{[3-4]}​ [34]。ZFNet实际上是微调(fine-tuning)了的AlexNet,并通过反卷积(Deconvolution)的方式可视化各层的输出特征图,进一步解释了卷积操作在大型网络中效果显著的原因。

1.2 模型结构

在这里插入图片描述

​ 图1 ZFNet网络结构图(原始结构图与AlexNet风格结构图)

​ 如图4.4所示,ZFNet与AlexNet类似,都是由8层网络组成的卷积神经网络,其中包含5层卷积层和3层全连接层。两个网络结构最大的不同在于,ZFNet第一层卷积采用了 7 × 7 × 3 / 2 7\times7\times3/2 7×7×3/2的卷积核替代了AlexNet中第一层卷积核 11 × 11 × 3 / 4 11\times11\times3/4 11×11×3/4的卷积核。图4.5中ZFNet相比于AlexNet在第一层输出的特征图中包含更多中间频率的信息,而AlexNet第一层输出的特征图大多是低频或高频的信息,对中间频率特征的缺失导致后续网络层次如图4.5(c)能够学习到的特征不够细致,而导致这个问题的根本原因在于AlexNet在第一层中采用的卷积核和步长过大。

在这里插入图片描述

在这里插入图片描述

​ 图2 (a)ZFNet第一层输出的特征图(b)AlexNet第一层输出的特征图(c)AlexNet第二层输出的特征图(d)ZFNet第二层输出的特征图

​ 表3 ZFNet网络参数配置

网络层输入尺寸核尺寸输出尺寸可训练参数量
卷积层 C 1 C_1 C1 ∗ ^* 224 × 224 × 3 224\times224\times3 224×224×3 7 × 7 × 3 / 2 , 96 7\times7\times3/2,96 7×7×3/2,96 110 × 110 × 96 110\times110\times96 110×110×96 ( 7 × 7 × 3 + 1 ) × 96 (7\times7\times3+1)\times96 (7×7×3+1)×96
下采样层 S m a x S_{max} Smax 110 × 110 × 96 110\times110\times96 110×110×96 3 × 3 / 2 3\times3/2 3×3/2 55 × 55 × 96 55\times55\times96 55×55×960
卷积层 C 2 C_2 C2 ∗ ^* 55 × 55 × 96 55\times55\times96 55×55×96 5 × 5 × 96 / 2 , 256 5\times5\times96/2,256 5×5×96/2,256 26 × 26 × 256 26\times26\times256 26×26×256 ( 5 × 5 × 96 + 1 ) × 256 (5\times5\times96+1)\times256 (5×5×96+1)×256
下采样层 S m a x S_{max} Smax 26 × 26 × 256 26\times26\times256 26×26×256 3 × 3 / 2 3\times3/2 3×3/2 13 × 13 × 256 13\times13\times256 13×13×2560
卷积层 C 3 C_3 C3 13 × 13 × 256 13\times13\times256 13×13×256 3 × 3 × 256 / 1 , 384 3\times3\times256/1,384 3×3×256/1,384 13 × 13 × 384 13\times13\times384 13×13×384 ( 3 × 3 × 256 + 1 ) × 384 (3\times3\times256+1)\times384 (3×3×256+1)×384
卷积层 C 4 C_4 C4 13 × 13 × 384 13\times13\times384 13×13×384 3 × 3 × 384 / 1 , 384 3\times3\times384/1,384 3×3×384/1,384 13 × 13 × 384 13\times13\times384 13×13×384 ( 3 × 3 × 384 + 1 ) × 384 (3\times3\times384+1)\times384 (3×3×384+1)×384
卷积层 C 5 C_5 C5 13 × 13 × 384 13\times13\times384 13×13×384 3 × 3 × 384 / 1 , 256 3\times3\times384/1,256 3×3×384/1,256 13 × 13 × 256 13\times13\times256 13×13×256 ( 3 × 3 × 384 + 1 ) × 256 (3\times3\times384+1)\times256 (3×3×384+1)×256
下采样层 S m a x S_{max} Smax 13 × 13 × 256 13\times13\times256 13×13×256 3 × 3 / 2 3\times3/2 3×3/2 6 × 6 × 256 6\times6\times256 6×6×2560
全连接层 F 6 F_6 F6 6 × 6 × 256 6\times6\times256 6×6×256 9216 × 4096 9216\times4096 9216×4096 1 × 1 × 4096 1\times1\times4096 1×1×4096 ( 9216 + 1 ) × 4096 (9216+1)\times4096 (9216+1)×4096
全连接层 F 7 F_7 F7 1 × 1 × 4096 1\times1\times4096 1×1×4096 4096 × 4096 4096\times4096 4096×4096 1 × 1 × 4096 1\times1\times4096 1×1×4096 ( 4096 + 1 ) × 4096 (4096+1)\times4096 (4096+1)×4096
全连接层 F 8 F_8 F8 1 × 1 × 4096 1\times1\times4096 1×1×4096 4096 × 1000 4096\times1000 4096×1000 1 × 1 × 1000 1\times1\times1000 1×1×1000 ( 4096 + 1 ) × 1000 (4096+1)\times1000 (4096+1)×1000

卷积层 C 1 C_1 C1与AlexNet中的 C 1 C_1 C1有所不同,采用 7 × 7 × 3 / 2 7\times7\times3/2 7×7×3/2的卷积核代替 11 × 11 × 3 / 4 ​ 11\times11\times3/4​ 11×11×3/4​,使第一层卷积输出的结果可以包含更多的中频率特征,对后续网络层中多样化的特征组合提供更多选择,有利于捕捉更细致的特征。

卷积层 C 2 C_2 C2采用了步长2的卷积核,区别于AlexNet中 C 2 C_2 C2的卷积核步长,所以输出的维度有所差异。

1.3 模型特性

​ ZFNet与AlexNet在结构上几乎相同,此部分虽属于模型特性,但准确地说应该是ZFNet原论文中可视化技术的贡献。

  • 可视化技术揭露了激发模型中每层单独的特征图。
  • 可视化技术允许观察在训练阶段特征的演变过程且诊断出模型的潜在问题。
  • 可视化技术用到了多层解卷积网络,即由特征激活返回到输入像素空间。
  • 可视化技术进行了分类器输出的敏感性分析,即通过阻止部分输入图像来揭示那部分对于分类是重要的。
  • 可视化技术提供了一个非参数的不变性来展示来自训练集的哪一块激活哪个特征图,不仅需要裁剪输入图片,而且自上而下的投影来揭露来自每块的结构激活一个特征图。
  • 可视化技术依赖于解卷积操作,即卷积操作的逆过程,将特征映射到像素上。

相关文章:

深度学习经典模型之ZFNet

1 ZFNet 1.1 模型介绍 ​ ZFNet是由 M a t t h e w Matthew Matthew D . Z e i l e r D. Zeiler D.Zeiler和 R o b Rob Rob F e r g u s Fergus Fergus在AlexNet基础上提出的大型卷积网络,在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军(实际…...

Linux系统-ubuntu系统安装

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 这是Linux进阶部分的最后一大章。讲完这一章以后,我们Linux进阶部分讲完以后,我们的Linux操作部分就…...

2-Ubuntu/Windows系统启动盘制作

学习目标: 掌握使用Win32DiskImager、Rufus等工具制作系统启动盘的基本步骤。独立将ISO镜像文件写入USB闪存驱动器,确保在需要时顺利安装或修复系统。通过学习如何选择正确的源文件和目标驱动器,理解启动盘的使用场景和注意事项,…...

你使用过哪些MySQL中复杂且使用不频繁的函数?

在MySQL中,除了常用的SELECT、INSERT、UPDATE等基本操作外,还有许多复杂且功能强大的函数,它们能够处理各种复杂的数据处理需求。这些函数虽然在日常开发中可能不常使用,但在特定场景下却能够发挥巨大的作用。下面,我将…...

Redis-07 Redis哨兵

操作实现 此处应该6台虚拟机,其中3台是哨兵,但因为内存限制没有那么多 1.将sentinel文件拷贝到/myredis目录下 2.sentinel.conf文件重要参数 新建配置文件sentinel26379.conf sentinel26380.conf sentinel26381.conf bind 0.0.0.0 daemonize yes pr…...

7.qsqlquerymodel 与 qtableview使用

目录 qtableview 委托QStyledItemDelegateQAbstractItemDelegateCheckBoxItemDelegate使用qtableview控制列宽,行高,隐藏拖拽行列 qtableview 委托 //设置单元格委托 void setItemDelegate(QAbstractItemDelegate *delegate); QAbstractItemDelegate *it…...

状态模式(State Pattern)详解

1. 引言 在很多软件系统中,对象的行为往往依赖于其内部状态,而状态的变化又会影响对象的行为。状态模式(State Pattern)为解决这一问题提供了一种优雅的方法。通过将状态的行为封装到独立的状态对象中,可以使得对象在…...

ajax微信静默登录不起效不跳转问题

问题描述: 今天通过ajax调用方式做微信静默登录,发现本地可以跳转,到线上地址死活都不跳转,就像没起作用一般,经许久排查发现,是因为https和http域名的问题,线上只配置了http域名&#xff0…...

参数估计理论

估计理论的主要任务是在某种信号假设下,估算该信号中某个参数(比如幅度、相位、达到时间)的具体取值。 参数估计:先假定研究的问题具有某种数学模型, 如正态分布,二项分布,再用已知类别的学习样…...

mybatis插入数据运行成功但数据库没有数据,id却在增长,是什么原因??

错误描述: mybatis插入数据运行成功,但是数据库却没有数据,id也在增加 原因:在测试方法上面加了 Transactional 虽然日志显示插入语句执行成功,但可能事务在提交过程中出现了问题。比如在后续的操作中有异常抛出导…...

Hadoop简介及单点伪分布式安装

目录 1. 大数据2. Hadoop简介3. Hadoop伪分布式安装4. Hadoop启动参考 1. 大数据 大数据的定义:一种规模大到在获取、存储、管理、分析方面大大超出传统数据库软件工具能力范围的数据集合。   特征:   1.海量的数据规模   2.快速的数据流转   3.…...

网站架构知识之Ansible模块(day021)

1.Ansible模块 作用:通过ansible模块实现批量管理 2.command模块与shell模块 command模块是ansible默认的模块,适用于执行简单的命令,不支持特殊符号 案列01,批量获取主机名 ansible all -m command -a hostname all表示对主机清单所有组…...

是时候用开源降低AI落地门槛了

过去三十多年,从Linux到KVM,从OpenStack到Kubernetes,IT领域众多关键技术都来自开源。开源技术不仅大幅降低了IT成本,也降低了企业技术创新的门槛。 那么,在生成式AI时代,开源能够为AI带来什么?…...

操作系统学习笔记-5.1-IO设备

文章目录 I/O控制器I/O 控制器的组成I/O 控制器的工作流程I/O 控制器的类型I/O 控制器的主要功能I/O 控制器与操作系统的交互DMA 的工作原理DMA 传输模式DMA 控制器的组成 组成内存映像I/O,寄存器独立编址 IO软件层次用户层 I/O 软件设备独立性软件层设备驱动程序中…...

页面、组件、应用、生命周期(微信小程序)

文章目录 页面生命周期函数组件生命周期函数应用(App)生命周期函数页面与组件生命周期的执行顺序注意事项 在微信小程序中,生命周期函数是指页面或组件在不同阶段会被自动调用的特定函数。这些函数可以帮助开发者在适当的时机完成特定的初始化…...

书生第四期实训营进阶岛——L2G4000 InternVL 多模态模型部署微调实践

基础任务 体验InternVL 运行demo 效果如下: 使用XTuner对InternVL进行微调 运行demo 效果如下:...

国内 ChatGPT中文版镜像网站整理合集(2024/11/08)

一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画 ② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4,4o以及MJ绘画 1. 什么是镜像站 镜像站(Mirror Site&#xff…...

SpringBoot整合Liquibase对数据库管理和迁移

简介 Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的…...

太空旅游:科技能否让星辰大海变为现实?

内容概要 在这个快速变化的时代,太空旅游成为了一个让人热血沸腾的话题。想象一下,坐在一颗漂浮的太空舱里,手中端着饮料,眺望着无尽的星辰大海,简直就像科幻电影中的情节一样。不过,这不仅仅是一个空洞的…...

[JAVAEE] 面试题(四) - 多线程下使用ArrayList涉及到的线程安全问题及解决

目录 一. 多线程下使用ArrayList 1.1. 自行判断加锁 1.2 使用Collections.synchronizedList()套壳加锁 1.3 CopyOnWriteArrayList类 二. 总结 一. 多线程下使用ArrayList 多线程下使用ArrayList会涉及到线程安全问题, 例如: public static void main(String[] args) thro…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...