AlexNet详解

news2024/11/18 15:23:49

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。

✨完整代码在我的github上,有需要的朋友可以康康✨

GitHub - tt-s-t/Deep-Learning: Store some of your own in-depth learning code, which is currently in the update stage.The content covers: each algorithm should be implemented in two ways as far as possible (database debugging and self building).

目录

一、AlexNet网络的背景

二、AlexNet网络结构

1、结构图

2、整体介绍

3、输入

4、卷积层

(1)第一层

(2)第二层

(3)第三层

(4)第四层

(5)第五层

5、全连接层

(1)第六层

(2)第七层

(3)第八层

6、GPU交互

三、AlexNet的亮点

1、在多个GPU上进行模型的训练

2、使用dropout

3、使用ReLU作为激活函数代替了传统的Sigmoid

4、重叠最大池化

5、图像增广,数据增强

四、AlexNet代码实现


一、AlexNet网络的背景

AlexNet由Geoffrey和他的学生Alex提出的一个深层的卷积神经网络,并在2012年的ILSVRC竞赛中获得了第一名。为解决的是:大规模的图像分类问题。


二、AlexNet网络结构

1、结构图

 接下来我们根据这张网络结构图来探索AlexNet的网络结构。

2、整体介绍

分为上下两层,分别对应两个GPU的操作过程,除了中间某些卷积层和全连接层会有GPU间的交互外,其他层都是由两个GPU分别计算结果。

除去局部响应规范化操作(LRN),AlexNet一共包含8层,前5层由卷积层(其中卷积层1、2、5后含有下采样层)组成,(中间还夹带一个平均池化),剩下的3层为全连接层。最后一层全连接层输出,得到1000个图像分类标签对应的得分值。

除了GPU并行结构的设计,AlexNet网络结构和LeNet很相像。

3、输入

输入是(224,224,3)的图像数据

4、卷积层

(1)第一层

(224,224,3)->(55,55,64)->(27,27,64)

Note:本来这后面还接了个norm层,即LRN 局部响应归一化

(2)第二层

 (27,27,64)->(27,27,192)->(13,13,192)

(3)第三层

(13,13,192) ->(13,13,384)

注:需要GPU交互

(4)第四层

 (13,13,384) ->(13,13,256)

(5)第五层

(13,13,256) ->(13,13,256)->(6,6,256)

5、全连接层

(1)第六层

 6*6*256 -> 4096

注:需要GPU交互

(2)第七层

4096 -> 4096

注:需要GPU交互

(3)第八层

 4096 -> 1000,得到1000个图像分类标签对应的得分值

注:需要GPU交互

6、GPU交互

最早的AlexNet使用这种双数据流的GPU交互是因为早期显存的限制。现在的Alexnet的应用已经不需要这样的交互设计了。


三、AlexNet的亮点

1、在多个GPU上进行模型的训练

不但可以提高模型的训练速度,还能提升数据的使用规模,解决当时的显存受限问题。

2、使用dropout

选择性地忽略训练中的单个神经元,减缓模型的过拟合问题。

3、使用ReLU作为激活函数代替了传统的Sigmoid

(1)ReLu的计算比较简单,速度更快

(2)sigmoid函数当输出接近0或者1的时候,梯度几乎为0,会导致反向传播无法继续更新部分模型参数,而ReLU在正区间的梯度恒为1。选择ReLu,避免了模型参数初始化不当,sigmoid函数可能会得到几乎为0的梯度的问题。

4、重叠最大池化

即池化范围z与步长s存在关系z > s(如最大池化下采样中核大小为3 × 3,步距为2)

这样可以避免平均池化的平均效应。

5、图像增广,数据增强

AlexNet引入了大量图像增广,如翻转,裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合。


四、AlexNet代码实现

详见GitHub - tt-s-t/Deep-Learning: Store some of your own in-depth learning code, which is currently in the update stage.The content covers: each algorithm should be implemented in two ways as far as possible (database debugging and self building).

中的AlexNet文件夹。


欢迎大家在评论区批评指正,谢谢~

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

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

相关文章

Python学习笔记——起步

Python 2 和 Python 3的区别 一、维护及版本更新不同 官方通知python2 2020开始已不再维护,python3的版本还在不断迭代更新 。 因为python2官方不再维护且python3的广泛使用,很多新的算法包、AI包等其他功能模块包都是基于python3开发的,p…

LaTeX使用方法

1.工具 1.生成表格:LaTeX Tables Editor 2.生成公式:Online LaTeX Equation Editor 、texmath demo、在线LaTeX公式编辑器-编辑器 2.技巧 1.插入图片: \begin{figure}[t] %t表示图片置顶,h表示指定位置,b表示置底…

条件分支if和else的使用详解

顺序结构没什么好讲的,就是从上到下的写代码,所以接下来,壹哥就直接带各位来学习分支结构里的条件分支。我们在前面说过,分支结构,或者叫做条件分支,其实有两种情况。一种是if...else...类型的条件分支&…

vue组件通信6种方式总结(常问知识点)

前言 在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的 Vuex 状态管理方案可以很好的解决组件之间的通信问题,但是在组件库内部使用 Vuex 往往会比较重,本文将系统的罗列出几种不使用 Vuex&#xff…

X.509证书详解

概述 X.509是公钥基础设施(PKI)的标准格式。X.509证书就是基于国际电信联盟(ITU)制定的X.509标准的数字证书。X.509证书主要用于识别互联网通信和计算机网络中的身份,保护数据传输安全。X.509证书无处不在&#xff0c…

Spring之底层架构核心概念-过滤器

文章目录1.excludeFilters:排除过滤器2.includeFilters:包含过滤器3.问题:spring为什么能通过是否有Component注解来判断是否需要去注册bean呢?3.1 看源码3.2 原因4.总结1.excludeFilters:排除过滤器 用excludeFilters排除UserService 这个类后&#xf…

nature级别图表:单细胞转录组细胞比例统计可视化函数

单细胞转录组细胞比例: 关于单细胞比例的计算和作图我们之前出过3期,单细胞比例的展示是很多单细胞文章必不可少的内容:跟着Cell学单细胞转录组分析(六):细胞比例计算及可视化 相信跟着学习的小伙伴已经掌握了。最近学习一篇《nature medici…

JavaScript 数组-概念,创建数组,遍历数组,新增元素

JavaScript 数组-概念,创建数组,遍历数组,新增元素 目录JavaScript 数组-概念,创建数组,遍历数组,新增元素1. 数组的概念2. 创建数组2.1 数组的创建方式2.2 利用 new 创建数组2.3 利用数组字面量创建数组2.…

模式分类识别 | BiLSTM双向长短期记忆神经网络数据多特征分类预测(Matlab完整程序)

模式分类识别 | BiLSTM双向长短期记忆神经网络数据多特征分类预测(Matlab完整程序) 目录 模式分类识别 | BiLSTM双向长短期记忆神经网络数据多特征分类预测(Matlab完整程序)分类结果基本介绍程序设计参考资料分类结果

深度学习实验(五)——循环神经网络编程

深度学习实验五:循环神经网络编程 本次实验练习使用torch.nn中的类设计一个循环神经网络进行MNIST图像分类。 在本次实验中,你要设计一个CNN,用于将282828 \times 282828的MNIST图像转换为MMDM\times M\times DMMD的特征图,将该特征图看作是…

我,做了两年程序员,存了巨款5000,你们拿什么跟我比?

🕐没错,标题所见,从21年1月份开始从事程序员工作也过了两年了,今年还是没有存到钱。 今年换了一份工作,四月份的时候,从惠州换到了广州工作,从制造业转行到了政务行业,工资涨了&…

Keithley 2604B数字源表-安泰测试

Keithley 2600B 系列系统 SMU 仪器是业界标准电流-电压源和测量解决方案,适用于高度自动化生产测试应用。 双通道和单通道型号都紧密集成一个精密电源、真正电流源、数字万用表和具有脉冲生成功能的电子负载。 另外,TSP? 技术可运行完整测试程序&#x…

多点双向重发布的应用

目录 1.拓扑图 2.实验思路 3.主要配置 4.测试 5.实验总结 1.拓扑图 2.实验思路 在配置完RIP和OSPF之后,在2,3号设备上进行多点的双向重发布由于在进行了多点的双向重发布之后,会出现大量的负载均衡,导致选路不佳的问题解决办…

前端工程师leetcode算法面试必备-二叉树深度广度遍历

一、前言 Medium 难度主要考察结合二叉树性质的 CRUD 操作,而这一切的基础都离不开遍历二叉树。 二叉树是图的子集,因而同样适用以下两种搜索思想: **DFS(深度优先搜索):**沿着根节点递归下去&#xff0c…

普通程序员怎么赚多份钱?解锁更多赚钱新姿势

在当下这个社会,学会如何make money很重要。 咱们是个俗人,赚钱才是社会生存的头等大事。这不是高山流水的世界,而是能力创造财富,对于程序员来说,更是如此。 作为程序员,我们有更多挣钱的姿势!…

通过一个测试项目了解EF CORE

首先用vs2019创建一个.net core项目 可以是控制台应用程序,也可以是asp.net core项目 如果你使用控制台应用程序, 则可以在Main方法中直接使用EF Core进行CRUD操作。这通常用于测试或开发时快速进行数据库操作。 如果你使用ASP.NET Core应用程序, 则可以在控制器中使用EF Cor…

低温超导系统中实现液氦温度准确控制的解决方案

摘要:针对目前两种典型低温超导测试系统中存在的液氦压力控制精度较差的问题,本文提出了相应的解决方案。解决方案分别采用了直接压力控制和流量控制两种技术手段和配套数控阀门,结合24位AD和16位DA的超高精度的PID真空压力控制器和压力传感器…

第三十九章 贪心算法——区间问题(下)

第三十九章 贪心算法——区间问题(下)一、区间问题1:最大不相交区间数量1、思路详解2、代码实现二、区间问题2:区间覆盖1、问题2、思路3、代码一、区间问题1:最大不相交区间数量 1、思路详解 这道题和前一章讲的最后一…

IDEA 使用的小技巧

1、调整 idea 的虚拟内存: 尽管本质都是去改变 .vmoptions 配置文件,但推荐使用Change Memory Settings去调整,选择Edit Custom VM Options 或者在本地磁盘目录更改,通过某些方法破解的 idea 很可能造成 idea 打不开的情况 2、显…

【数据结构-源码分析】HashMap源码分析(超级详细)

文章内容1、HashMap简介2、类结构3、属性4、构造方法5、方法5.1、put方法5.2、resize方法6、jdk1.8的优化1、HashMap简介 HashMap基于哈希表的Map接口实现,是以key-value存储形式存在。(除了不同步和允许使用 null 之外,HashMap 类与 Hashta…