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

评论:AlexNet和CaffeNet有何区别?

一、说明

        在这个故事中,我们回顾了AlexNetCaffeNet。AlexNet 是2012 年ILSVRC(ImageNet 大规模视觉识别竞赛的获胜者,这是一项图像分类竞赛。而CaffeNet是AlexNet的单GPU版,因此,我们平时在普通电脑的AlexNet实际上是CaffeNet、

二、2012年的ImageNet竞赛

        ImageNet 是一个包含超过 1500 万张带标签的高分辨率图像的数据集,其中包含大约 22,000 个类别。ILSVRC 使用 ImageNet 的子集,其中每个类别包含约 1000 个图像。总共大约有 120 万张训练图像、5 万张验证图像和 15 万张测试图像。

        AlexNet,ILSVRC 2012 图像分类冠军,错误率显着降低

答:对于AlexNet,我们将介绍:

  1. 建筑学
  2. ReLU(修正线性单元)
  3. 多个 GPU
  4. 局部响应标准化
  5. 重叠池化
  6. 数据增强
  7. 辍学
  8. 学习参数的其他细节
  9. 结果

        B. 对于CaffeNet来说,它只是AlexNet 的单 GPU 版本。由于通常情况下,人们只有一个 GPU,因此 CaffeNet 是一个用于模拟 AlexNet 的单 GPU 网络。我们也将在本故事的结尾介绍这一点。

        通过遍历每个组件,我们可以知道每个组件的重要性。其中一些现在不太有用。但它们确实激发了其他网络的发明。

三、AlexNet网络描述

1. 架构

亚历克斯网

AlexNet 包含八层

输入:227×227×3输入图像(论文中和图中也提到了224×224×3尺寸,但是后来指出应该是227,或者在计算过程中填充了224×224×3第 1 次卷积。)

第一:卷积层:2组,每组48个核,大小11×11×3
(stride:4,pad:0)

输出55×55×48特征图×2组
然后3×3重叠最大池化(stride:2)
输出27×27×48特征图×2组
然后局部响应归一化
输出27×27×48特征图×2组

第二:卷积层:2组,每组128个核,大小为5×5×48
(步长:1,pad:2)

输出27×27×128特征图×2组
然后3×3重叠最大池化(步长:2)
输出13×13×128特征图×2组
然后局部响应归一化
输出13×13×128特征图×2组

第三:卷积层:2组,每组192个核,大小为3×3×256
(stride:1,pad:1)

输出13×13×192个特征图×2组

第四:卷积层:2组,每组192个核,大小为3×3×192
(stride:1,pad:1)

输出13×13×192个特征图×2组

第五:卷积层:256个大小为3×3×192的核
(步长:1,pad:1)

输出13×13×128特征图×2组
然后3×3重叠最大池化(步长:2)
输出6×6 ×128个特征图×2组


第 6 层: 4096 个神经元的全连接(密集)层


第 7 层: 4096 个神经元的全连接(密集)层

第 8 层:输出的全连接(密集)层
1000 个神经元(因为有 1000 个类)
Softmax用于计算损失。

总共有6000万个参数需要训练!!!

2.ReLU

激活函数

在 Alexnet 之前,使用的是 Tanh。AlexNet 中引入了 ReLU。
ReLU比Tanh 快六倍,达到 25% 的训练错误率。

3.多个GPU

当时使用的是NVIDIA GTX 580 GPU,只有3GB显存。因此,我们可以在架构中看到它们分成两条路径并使用 2 个 GPU 进行卷积。相互通信仅发生在一个特定的卷积层上。

因此,使用 2 个 GPU 是由于内存问题,而不是为了加快训练过程。

整个网络与只有一半内核(只有一条路径)的网络相比, Top-1和top-5错误率分别降低了1.7%和1.2%。

4. 局部响应标准化

正常化

在AlexNet中,使用了局部响应归一化。正如我们在方程中看到的,它与批量归一化不同。标准化有助于加速收敛。如今,使用批量归一化而不是使用本地响应归一化。

通过本地响应标准化,Top-1 和 top-5 错误率分别降低了 1.4% 和 1.2%。

5. 重叠池化

重叠池化是步幅小于内核大小的池化,非重叠池化是步幅等于或大于内核大小的池化。

通过重叠池化,Top-1 和 top-5 错误率分别降低了 0.4% 和 0.3%。

6. 数据增强

数据增强的两种形式。

第一:图像平移和水平反射(镜像)

从一张 256×256 图像加上水平反射中提取随机 224×224。训练集的大小增加了 2048 倍。计算公式如下:

通过图像平移:(256–224)²=32²=1024

通过水平反射:1024 × 2 = 2048

测试时,使用四个角斑块加上中心斑块及其对应的水平反射(总共10个斑块)进行预测,并取所有结果的平均值以获得最终的分类结果。

第二:改变强度

PCA 在训练集上执行。对于每个训练图像,添加数量:

强度改变量

其中 pi 和 λi 分别是 RGB 像素值的 3×3 协方差矩阵的第 i 个特征向量和特征值,αi 是平均值为 0、标准方差为 0.1 的随机变量。

通过数据增强来增加训练集的大小,Top-1 错误率降低了 1% 以上。

7. 辍学

辍学

对于使用 dropout 的层,在训练期间,每个神经元都有概率不参与前馈传递并参与反向传播。因此,每个神经元都可以有更大的机会接受训练,而不是过分依赖某些非常“强”的神经元。

考试期间,不会出现掉线的情况。

在 AlexNet 中,前两个全连接层使用 0.5 的概率。Dropout是一种减少过度拟合的正则化技术。

8.学习参数的其他细节

批量大小:128
动量 v:0.9
权重衰减:0.0005
学习率 ϵ:0.01,当验证错误率停止改善时手动减少 10,减少 3 倍。

动量v和权重w的更新

包含 120 万张图像的训练集。
网络训练了大约 90 个周期。
使用两个 NVIDIA GTX 580 3GB GPU 可以使用五到六天。

9. 结果

ILSVRC 2010 中的错误率

在 ILSVRC 2010 中,AlexNet 的 Top-1 和 top-5 错误率分别为 37.5% 和 17.0%,优于其他方法。

如果没有通过数据增强对 10 个补丁上的 10 个预测进行平均AlexNet 仅获得 Top-1 和 top-5 错误率,分别为 39.0% 和 18.3%。

ILSVRC 2012 中的错误率

通过1个AlexNet(1个CNN),验证错误率为18.2%

通过对5 个 AlexNet(5 个 CNN)的预测进行平均,错误率降低到16.4%。这是LeNet 中已经用于数字分类的一种 boosting 技术。

通过向 AlexNet (1 CNN*) 添加一层卷积层,验证错误率降低至16.6%

通过对2 个修改后的 AlexNet 和 5 个原始 AlexNet(7 个 CNN*)的预测进行平均,验证错误率降低至15.4%

AlexNet 的一些前 5 名结果

四、CaffeNet

        CaffeNet 是 AlexNet 的 1-GPU 版本。该架构是:

注意点:

        我们可以看到 AlexNet 中的 2 条路径合并为一条路径。

        值得注意的是,对于 CaffeNet 的早期版本,池化层和归一化层的顺序是相反的,这是偶然的。但在 Caffe 提供的当前版本的 CaffeNet 中,它已经为 Caffenet 提供了池化层和归一化层的正确顺序。

通过对每个组件的逐一研究,我们可以了解每个组件的有效性。:)

如果有兴趣,还有一个关于使用 Nvidia-Docker 和 Caffe 快速设置 CaffeNet 的教程[3]。

相关文章:

评论:AlexNet和CaffeNet有何区别?

一、说明 在这个故事中,我们回顾了AlexNet和CaffeNet。AlexNet 是2012 年ILSVRC(ImageNet 大规模视觉识别竞赛)的获胜者,这是一项图像分类竞赛。而CaffeNet是AlexNet的单GPU版,因此,我们平时在普通电脑的Al…...

什么是 IT 资产管理(ITAM),以及它如何简化业务

IT 资产管理对任何企业来说都是一项艰巨的任务,但使用适当的工具可以简化这项任务,例如,IT 资产管理软件可以为简化软件和硬件的管理提供巨大的优势。 什么是 IT 资产管理 IT 资产管理(ITAM)是一组业务实践&#xff…...

git快速上传代码

① git init; 初始化git,之后在文件夹里有.git文件,这个需要 勾选才能查看。 ② git remote add test myFisrtTest: 测试专用 这里的test是自定义的,myFisrtTest: 测试专用 是远程仓库 ③ git branch -a 这里是查看分支 ④ …...

stable diffusion comfyui的api使用教程

一、为什么要使用comfyui的api?对比webui的api,它有什么好处? 1、自带队列 2、支持websocket 3、无需关心插件是否有开放api接口,只要插件在浏览器中可以正常使用,接口就一定可以使用 4、开发人员只需关心绘图流程的搭建 5、切换…...

Swift中的strong, weak, unowned

在 Swift 中,strong, weak, 和 unowned 关键词用于管理内存中对象的引用。这些关键词与 Swift 的自动引用计数(ARC)系统紧密相关,用于防止内存泄漏和强引用循环。下面是对这三种引用类型的简要说明: 1. Strong 默认行…...

Linux命令——ssh

Linux命令——ssh 背景 SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。 历史上,网络主机之间的通信是不加密的,属于明文通信。这使得通信很不安全&a…...

在qml中,text如何左对齐,对齐方式有哪些?如何换行?

在Qt Quick(即QML)中,你可以使用Text组件的horizontalAlignment属性来控制文本的对齐方式。以下是一些常用的对齐方式: Align.Left: 文本左对齐。这是默认的对齐方式。 Align.Center: 文本居中对齐。 Align.Right: 文本右对齐。 …...

【Rust 易学教程】第 1 天:Rust 基础,基本语法

上一节:【Rust 易学教程】学前准备:Cargo, 你好 今天,我们正式进入 Rust 基础的学习。在本文的内容中,我会为大家介绍以下内容: 基本 Rust 语法: 变量、标量和复合类型、枚举、结构、引用、函数和方法。控…...

Linux(命令)——结合实际场景的命令 查找Java安装位置命令

前言 在内卷的时代,作为开发的程序员也需要懂一些Linux相关命令。 本篇博客结合实际应用常见,记录Linux命令相关的使用,持续更新,希望对你有帮助。 目录 前言引出一、查找Java安装位置命令1、使用which命令2、使用find命令3、查…...

C语言基础 -- scanf函数的返回值及其应用

前言、scanf函数有返回值 我们在作PTA上的编程作业时,经常在编译窗口会看到如下的信息: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result] 当时老师一定会告诉你,这个一个&qu…...

mac 安装 selenium + chrome driver

前言 使用 selenium 模拟浏览器渲染数据,需要依赖各浏览器的驱动才能完成,因此需要单独安装chrome driver 查看本地 chrome 浏览器的版本 可以看到我这里已经是 arm 架构下最新的版本了 下载对应的 chrome driver 访问下面的地址: Chrome…...

【阿里云】函数计算 X 通义千问快速部署

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…...

el-table本地与线上的样式不一致出现错乱

使用el-table的时候有几个表头是循环出来的,出现在本地运行的时候,表头内el-input输入框样式正常,但是发布以后出现样式错乱问题 线上样式错乱:​ 本地正常: 出现这个问题的原因是我有几个表头是循环出来的&#xff0…...

C语言--从键盘输入当月利润I,求应发奖金总数。

题目描述: 企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%; 利润高于100000 元,低于200000元(1000001000000时,超过1000000元的部分按 1%提成。从键盘输入当月利润I,求应发奖金总数。 int main() {int m…...

记忆科技携手中国电信,一站式存储打造坚实数字底座

11月10日,以“数字科技 焕新启航”为主题的2023数字科技生态大会在广州盛大开幕,本次大会由中国电信、广东省人民政府联合举办,是一场数字科技领域的年度盛会。忆联母公司记忆科技作为中国电信的合作伙伴之一受邀参会,深度参与了大…...

基于ssm的学生档案管理系统(有报告)。Javaee项目,ssm项目。

演示视频: 基于ssm的学生档案管理系统(有报告)。Javaee项目,ssm项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍&#xff…...

阿里云服务中断事件:原因、影响与解决方案

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰 如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊 文章目录 阿里云服务中断事件:原因、影…...

搜维尔科技:「体育类」Movella Xsens极限运动捕捉测试

搜维尔科技:「体育类」Movella Xsens极限运动捕捉测试...

CSS常用示例100+ 【目录】

目前已有文章 11 篇 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS相关…...

Shopee买家通系统之注册虾皮买家号大概需要多少成本

想要注册大量的虾皮买家号,可以使用shopee买家通系统进行注册,这款软件可以全自动化的注册虾皮买家号,不过想要自动化更方便,对于账号资料有一定的要求。 1、现在注册虾皮买家号基本上都是需要用手机号注册了的,而虾皮…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

dify打造数据可视化图表

一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

push [特殊字符] present

push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...