评论:AlexNet和CaffeNet有何区别?
一、说明
二、2012年的ImageNet竞赛
ImageNet 是一个包含超过 1500 万张带标签的高分辨率图像的数据集,其中包含大约 22,000 个类别。ILSVRC 使用 ImageNet 的子集,其中每个类别包含约 1000 个图像。总共大约有 120 万张训练图像、5 万张验证图像和 15 万张测试图像。

AlexNet,ILSVRC 2012 图像分类冠军,错误率显着降低
答:对于AlexNet,我们将介绍:
- 建筑学
- ReLU(修正线性单元)
- 多个 GPU
- 局部响应标准化
- 重叠池化
- 数据增强
- 辍学
- 学习参数的其他细节
- 结果
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)是一组业务实践ÿ…...
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输入框样式正常,但是发布以后出现样式错乱问题 线上样式错乱: 本地正常: 出现这个问题的原因是我有几个表头是循环出来的࿰…...
C语言--从键盘输入当月利润I,求应发奖金总数。
题目描述: 企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%; 利润高于100000 元,低于200000元(1000001000000时,超过1000000元的部分按 1%提成。从键盘输入当月利润I,求应发奖金总数。 int main() {int m…...
记忆科技携手中国电信,一站式存储打造坚实数字底座
11月10日,以“数字科技 焕新启航”为主题的2023数字科技生态大会在广州盛大开幕,本次大会由中国电信、广东省人民政府联合举办,是一场数字科技领域的年度盛会。忆联母公司记忆科技作为中国电信的合作伙伴之一受邀参会,深度参与了大…...
基于ssm的学生档案管理系统(有报告)。Javaee项目,ssm项目。
演示视频: 基于ssm的学生档案管理系统(有报告)。Javaee项目,ssm项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍ÿ…...
阿里云服务中断事件:原因、影响与解决方案
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰 如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊 文章目录 阿里云服务中断事件:原因、影…...
搜维尔科技:「体育类」Movella Xsens极限运动捕捉测试
搜维尔科技:「体育类」Movella Xsens极限运动捕捉测试...
CSS常用示例100+ 【目录】
目前已有文章 11 篇 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS相关…...
Shopee买家通系统之注册虾皮买家号大概需要多少成本
想要注册大量的虾皮买家号,可以使用shopee买家通系统进行注册,这款软件可以全自动化的注册虾皮买家号,不过想要自动化更方便,对于账号资料有一定的要求。 1、现在注册虾皮买家号基本上都是需要用手机号注册了的,而虾皮…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
