模型实际训练笔记1—AlexNet

1、AlexNet网络模型介绍:

AlexNet 是一种深度卷积神经网络,由Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 在2012年开发。它是深度学习领域的重要里程碑,因为它在当年的 ImageNet 大规模图像分类竞赛(ILSVRC)上取得了显著的胜利,大大降低了图像分类错误率,标志着深度卷积神经网络的复兴。

以下是关于 AlexNet 的一些关键特点:

  1. 深度网络:相对于以前的神经网络,AlexNet 是一个相对较深的卷积神经网络,有8层卷积和全连接层。这种深度有助于网络更好地学习到图像中的特征。

  2. 卷积层和池化层:AlexNet 采用了交替的卷积层和池化层。这些卷积层用于检测图像中的特征,如边缘、纹理和形状,而池化层用于减小特征图的空间分辨率。

  3. ReLU 激活函数:与传统的激活函数(如 Sigmoid 和 Tanh)不同,AlexNet 引入了修正线性单元(ReLU)作为激活函数。这有助于加速网络的训练,因为它减少了梯度消失问题。

  4. 局部响应归一化(LRN):AlexNet 在卷积层之间引入了局部响应归一化层,以增强网络的泛化性能。

  5. Dropout:为了减少过拟合,AlexNet 引入了 Dropout 层,随机地在训练过程中关闭一部分神经元。

  6. 多GPU训练:AlexNet 是早期采用多GPU进行训练的神经网络之一,这种并行训练方法有助于加速训练过程。

  7. 大规模数据集:AlexNet 的成功也得益于大规模的 ImageNet 数据集,这个数据集包括数百万张标记图像,涵盖了1000个不同的类别。

  8. ImageNet 竞赛胜利:AlexNet 在2012年 ImageNet 竞赛上一举夺魁,将图像分类错误率大幅降低,标志着深度学习的崭露头角。

AlexNet 的成功对深度学习产生了深远的影响,激发了更多对深度卷积神经网络的研究和应用。它表明深度神经网络在计算机视觉任务中的潜力,并开启了深度学习在图像分类、目标检测和其他视觉任务中的广泛应用。

2、AlexNet取得成功的原因

AlexNet 网络之所以取得成功,有以下关键原因:

  1. 深度网络结构:AlexNet 是相对较深的神经网络,拥有8层卷积和全连接层。这种深度有助于网络更好地学习到图像中的高级特征和抽象表示。

  2. ReLU 激活函数:AlexNet 引入了修正线性单元(ReLU)作为激活函数,相较于传统的 Sigmoid 函数,ReLU 更容易训练,减轻了梯度消失问题,使网络更快地收敛。

  3. 大规模数据集:AlexNet 的成功得益于大规模的 ImageNet 数据集,该数据集包含数百万张标记图像,具有丰富的多样性和复杂性,有助于网络更好地泛化到新的图像。

  4. 多GPU训练:AlexNet 是早期采用多GPU训练的神经网络之一。通过并行处理,可以加速网络的训练速度,使得更深层次的网络训练成为可能。

  5. 局部响应归一化(LRN):AlexNet 引入了局部响应归一化层,有助于提高网络的泛化性能,特别是在竞赛数据集上。

  6. Dropout:为了减少过拟合,AlexNet 引入了 Dropout 层,通过随机关闭一部分神经元,增加了网络的鲁棒性。

  7. ImageNet 竞赛胜利:AlexNet 在2012年 ImageNet 竞赛中取得了显著胜利,将图像分类错误率大幅降低,表明深度卷积神经网络在大规模图像分类任务上的卓越性能。

  8. 研究团队的贡献:AlexNet 的成功也归功于团队的卓越工作,包括网络结构的设计、训练策略的选择和超参数的调整。

AlexNet 的成功标志着深度学习的复兴,激发了对卷积神经网络和深度学习的广泛研究和应用。它为计算机视觉领域和其他领域的深度学习研究奠定了坚实的基础。

2、网络结构图:

      AlexNet由8层组成:5个卷积层、2个全连接隐藏层和1个全连接输出层.

       在AlexNet的第一层,卷积窗口的形状是11×11。 由于ImageNet中大多数图像的宽和高比MNIST图像的多10倍以上,因此,需要一个更大的卷积窗口来捕获目标。 第二层中的卷积窗口形状被缩减为5×5,然后是3×3。 此外,在第一层、第二层和第五层卷积层之后,加入窗口形状为3×3、步幅为2的最大汇聚层。 而且,AlexNet的卷积通道数目是LeNet的10倍。

        在最后一个卷积层后有两个全连接层,分别有4096个输出。 这两个巨大的全连接层拥有将近1GB的模型参数。 由于早期GPU显存有限,原版的AlexNet采用了双数据流设计,使得每个GPU只负责存储和计算模型的一半参数。 幸运的是,现在GPU显存相对充裕,所以现在很少需要跨GPU分解模型(因此,本书的AlexNet模型在这方面与原始论文稍有不同)。

图  从LeNet(左)到AlexNet(右)

3、使用的数据集:

这里使用的是Fashion-MNIST数据集,训练AlexNet。 原文中AlexNet是在ImageNet上进行训练的,数据集比较大,因为即使在现代GPU上,训练ImageNet模型,同时使其收敛可能需要数小时或数天的时间。而这里训练下来,使用RTX4090,收敛大约在10-20分钟之间。

4、代码:

基于PyTorch架构的。自己实际运行过的,没有问题。需要安装d2l库。参考动手深度学习一书。

import torch
from torch import nn
from d2l import torch as d2lnet = nn.Sequential(# 这里使用一个11*11的更大窗口来捕捉对象。# 同时,步幅为4,以减少输出的高度和宽度。# 另外,输出通道的数目远大于LeNetnn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),nn.MaxPool2d(kernel_size=3, stride=2),# 减小卷积窗口,使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),nn.MaxPool2d(kernel_size=3, stride=2),# 使用三个连续的卷积层和较小的卷积窗口。# 除了最后的卷积层,输出通道的数量进一步增加。# 在前两个卷积层之后,汇聚层不用于减少输入的高度和宽度nn.Conv2d(256, 384, kernel_size=3, padding=1), nn.ReLU(),nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),nn.Conv2d(384, 256, kernel_size=3, padding=1), nn.ReLU(),nn.MaxPool2d(kernel_size=3, stride=2),nn.Flatten(),# 这里,全连接层的输出数量是LeNet中的好几倍。使用dropout层来减轻过拟合nn.Linear(6400, 4096), nn.ReLU(),nn.Dropout(p=0.5),nn.Linear(4096, 4096), nn.ReLU(),nn.Dropout(p=0.5),# 最后是输出层。由于这里使用Fashion-MNIST,所以用类别数为10,而非论文中的1000nn.Linear(4096, 10))X = torch.randn(1, 1, 224, 224)
for layer in net:X=layer(X)print(layer.__class__.__name__,'output shape:\t',X.shape)batch_size = 128
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, resize=224)lr, num_epochs = 0.01, 10
d2l.train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())d2l.plt.show()

5、运行结果显示

loss 0.333, train acc 0.881, test acc 0.883
5397.5 examples/sec on cuda:0

5、小结

  • AlexNet的架构与LeNet相似,但使用了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。

  • 今天,AlexNet已经被更有效的架构所超越,但它是从浅层网络到深层网络的关键一步。

  • 尽管AlexNet的代码只比LeNet多出几行,但学术界花了很多年才接受深度学习这一概念,并应用其出色的实验结果。这也是由于缺乏有效的计算工具。

  • Dropout、ReLU和预处理是提升计算机视觉任务性能的其他关键步骤。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pc通过window.open打开新页面,新页面要使用原来页面的token

原文链接: https://blog.csdn.net/weixin_42342065/article/details/127420783 (以下为本人笔记使用) 对于前端来说,一般在登录获取token之后会把token存入缓存以及放置在Request Headers请求头中,但是使用iframe/window.open/a这三种标签打…

微信小程序-授权登录(手机号码)

1、WXBizDataCrypt.js-下载地址 2、UNIAPP代码 <template> <view class"work-container"> <view class"login"> <view class"content"> <button class"button_wx&q…

(四)上市企业实施IPD成功案例分享之——天士力

众所周知&#xff0c;药物有创新药和仿制药两种&#xff0c;其实这是根据新药研发的方式划分的&#xff0c;而创新药则经历一个从无到有的过程。无论是仿制药还是创新药&#xff0c;都是基于市场需求为前提进行的研发过程&#xff0c;药物研发立项同样需要满足治疗人类的疾病&a…

Android 13 Handler详解

1.Handler 简介 Handler 是一套 Android 消息传递机制。在多线程应用场景中&#xff0c;将子线程中需要更新 UI 的操作消息&#xff0c;传递到 UI 主线程&#xff0c;从而实现子线程通知 UI 更新最终实现异步消息处理。说白了是用于线程之间的通信。 Handler主要有4个重要类&a…

学习笔记|两因素析因设计的方差分析|效应量|统计分析策略|《小白爱上SPSS》课程:SPSS第九讲 | 两因素析因设计的方差分析,超级详细

目录 学习目的软件版本原始文档两因素析因设计的方差分析一、实战案例二、统计策略三、SPSS操作1、正态性检验2、方差分析 四、结果解读Tips&#xff1a;效应量越大越好吗&#xff1f;统计分析策略 五、简单效应操作及结果1、SPSS操作2、结果解读 六、规范报告1、规范表格2、规…

关于宝塔面板提示“upgrade your ACME client to support TLSv1.2 or better”的解决办法

今天续期SSL证书的时候提示“upgrade your ACME client to support TLSv1.2 or better”&#xff0c;这一般是旧系统情况下TLS版本过低&#xff1a;acme.sh版本低于2.8所引起的&#xff0c;也就是提示&#xff1a;升级你的系统至 TLS 1.2 协议或更高版本。 但是国内服务器无法…

创建javaEE项目(无maven),JSP(九大内置对象)、Servlet(生命周期)了解

一、Servlet和jsp 0.创建web项目(无maven)&#xff1a; 1.创建一个普通的java项目 2.项目根目录右键&#xff0c;添加模板 3.配置tomcat服务器 4.配置项目tomcat依赖 1.Servlet(Server Applet)服务端小程序 用户通过浏览器发送一个请求&#xff0c;服务器tomcat接收到后&…

python 练习 在列表元素中合适的位置插入 输入值

目的&#xff1a; 有一列从小到大排好的数字元素列表&#xff0c; 现在想往其插入一个值&#xff0c;要求&#xff1a; 大于右边数字小于左边数字 列表元素&#xff1a; [1,4,6,13,16,19,28,40,100] # 方法&#xff1a; 往列表中添加一个数值&#xff0c;其目的方便元素位置往后…

GB28181协议如何注册

前言 GB28181协议是视频监控领域的国家标准&#xff0c;本文将解析如何在FFmpeg中增加对GB28181协议的支持&#xff0c;使其可以与支持GB28181协议的设备进行通信与控制&#xff0c;实现设备的注册、保活以及流媒体的传输。 1.背景介绍 GB28181协议指的是国家标准GB/T 28181…

360加固APP后启动崩溃—注意加固前后签名是否一致

如下截图所示&#xff0c;我今天就是遇到了这个问题&#xff0c;这个问题是比较好解决&#xff0c;但如果官网有显眼指引说明会不会对开发者更友好些呢&#xff1f; 首先我们给360的加固包是带有自己的签名的&#xff0c;然后经360加固过后&#xff08;免费的加固服务&#xf…

适合短视频团队使用的批量剪辑软件,支持免费试用,建议都去试试

全能的批量剪辑是什么样&#xff1f;大致就是既要能写脚本、又要能高效剪辑、并完成矩阵分发&#xff0c;从各个环节助力团队提升工作效率。 推荐超级编导这款批量剪辑工具&#xff0c;吸取同类批量剪辑软件的优点&#xff0c;弥补其他软件的不足&#xff0c;根据国内外2000短…

20.4 OpenSSL 套接字AES加密传输

在读者了解了加密算法的具体使用流程后&#xff0c;那么我们就可以使用这些加密算法对网络中的数据包进行加密处理&#xff0c;加密算法此处我们先采用AES算法&#xff0c;在网络通信中&#xff0c;只需要在发送数据之前对特定字符串进行加密处理&#xff0c;而在接收到数据后在…

提高微星笔记本Linux下散热性能,MSI-EC 驱动新补丁发布

导读近日消息&#xff0c;今年早些时候&#xff0c;Linux 6.4 中添加了 MSI-EC 驱动程序&#xff0c;允许对 Linux 系统微星笔记本电脑进行更多控制。 MSI-EC 驱动程序近日迎来新补丁&#xff0c;为微星笔记本带来 Cooler Boost 功能。该功能允许提高笔记本电脑的风扇转速&…

3DEXPERIENCE云端项目管理小工具--Project Planner项目策划者角色

云端3DEXPERIENCE平台提供了一个协作环境&#xff0c;使企业和个人能够以全新的方式实现创新。它将人员、创意、数据和解决方案连接到一个始终在线且可用的协作和交互环境中&#xff0c;可以帮助您的企业提高执行力、生产率并加速创新。 3DEXPERIENCE中的Project Planner项目策…

【Linux虚拟机】 JDK、Tomcat、MySQL安装配置讲解

目录 一、上传安装包到服务器 二、JDK与Tomcat安装 2.1 解压安装包 2.2 配置JDK环境变量 2.3 配置Tomcat环境 三、MySQL安装配置 3.1 删除默认数据库 3.2 安装mysql安装包 3.3 mysql初始化操作 四、后端接口部署 4.1 导入项目.war 4.2 新建数据库 4.3 运行服务器项目…

mysql 增删改查基础命令

数据库是企业的重要信息资产&#xff0c;在使用数据库时&#xff0c;要注意(查和增,无所谓,但是删和改,要谨慎! ) 数据库管理系统(DBMS) :实现对数据的有效组织&#xff0c;管理和存取的系统软件 mysgl 数据库是一个系统&#xff0c; 是一个人机系统&#xff0c;硬件, gs,数据库…

算法与数据结构-回溯算法

文章目录 如何理解“回溯算法”&#xff1f;两个回溯算法的经典应用0-1 背包正则表达式 如何理解“回溯算法”&#xff1f; 笼统地讲&#xff0c;回溯算法很多时候都应用在“搜索”这类问题上。不过这里说的搜索&#xff0c;并不是狭义的指我们前面讲过的图的搜索算法&#xf…

MSQL系列(十二) Mysql实战-为什么索引要建立在被驱动表上

Mysql实战-为什么索引要建立在被驱动表上 前面我们讲解了BTree的索引结构&#xff0c;也详细讲解下 left Join的底层驱动表 选择原理&#xff0c;那么今天我们来看看到底如何用以及如何建立索引和索引优化 开始之前我们先提一个问题&#xff0c; 为什么索引要建立在被驱动表上…

选择适合制造业的企业邮箱平台

自2010年成立以来&#xff0c;J公司已从一家小型有限责任公司发展成为全球领先的工业内窥镜研发、生产和销售企业。公司的产品制造采用国际先进技术和一流生产工艺&#xff0c;专业为客户提供定制解决方案&#xff0c;产品已广泛应用于锅检特检、机械制造、发电、石油、燃气、化…

一款成熟的文件外发审计管控系统,应该具备哪些价值?

在信息化高速发展的时代&#xff0c;电子文件泄密事件层出不穷&#xff0c;比如文本文档、图像、音频、视频、电子表格等&#xff0c;都是日常会接触到的文件类型。像制造业企业&#xff0c;会有比较多的上下游协作交流&#xff0c;外发的电子文档以明文的形式提供给合作伙伴&a…