DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

简介: DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

LeNet-5算法的简介(论文介绍)

image.png


      LeNet-5模型是Yann LeCun教授于1998年在论文《Gradient-based learning applied to document recognition》中提出。它是第一个成功应用于手写数字识别问题并产生实际商业(邮政行业)价值的卷积神经网络。


Abstract

     Multilayer neural networks trained with the back-propagation algorithm constitute the best example of a successful gradient based learning technique. Given an appropriate network architecture, gradient-based learning algorithms can be used to synthesize a complex decision surface that can classify high-dimensional patterns, such as handwritten characters, with minimal preprocessing. This paper reviews various methods applied to handwritten character recognition and compares them on a standard handwritten digit recognition task. Convolutional neural networks, which are specifically designed to deal with the variability of 2D shapes, are shown to outperform all other techniques.

     利用反向传播算法训练的多层神经网络构成了一种成功的基于梯度的学习技术。在适当的网络结构下,基于梯度的学习算法可以用来合成一个复杂的决策曲面,该曲面可以用最少的预处理对高维模式(如手写字符)进行分类。本文综述了手写字符识别的各种方法,并在一个标准的手写数字识别任务上进行了比较。卷积神经网络是专门设计用来处理二维形状变化的,它的表现优于其他所有技术。

     Real-life document recognition systems are composed of multiple modules including field extraction, segmentation recognition, and language modeling. A new learning paradigm, called graph transformer networks (GTN), allows such multimodule systems to be trained globally using gradient-based methods so as to minimize an overall performance measure.

     现实生活中的文档识别系统由多个模块组成,包括字段提取、分割识别和语言建模。一种新的学习范式称为图变网络(GTN),它允许使用基于梯度的方法对这种多模块系统进行全局训练,从而最小化总体性能度量。

     Two systems for online handwriting recognition are described. Experiments demonstrate the advantage of global training, and the flexibility of graph transformer networks.

     介绍了两种在线手写识别系统。实验表明,该方法具有全局训练的优点,并具有图形变压器网络的灵活性。

     A graph transformer network for reading a bank cheque is also described. It uses convolutional neural network character recognizers combined with global training techniques to provide record accuracy on business and personal cheques. It is deployed commercially and reads several million cheques per day.

     本论文还描述了一种用于读取银行支票的图形变压器网络。它使用卷积神经网络字符识别器,结合全局训练技术,为企业和个人支票提供准确的记录。它已投入商业使用,每天可读取数百万张支票。



论文

https://ieeexplore.ieee.org/document/726791

http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

image.png

1998 年《Gradient-Based Learning Applied to Documnet Recognition》

http://yann.lecun.com/exdb/lenet/




LeNet-5算法的架构详解


DL之LeNet-5:LeNet-5算法的架构详解

image.png




LeNet-5算法的案例应用


PyTorch之LeNet-5:利用PyTorch实现最经典的LeNet-5卷积神经网络对手写数字图片识别CNN



1、LeNet-5算法的代码实现(LeNet-5——PyTorch)

PyTorch:利用PyTorch实现搭建最经典的LeNet卷积神经网络CNN——Jason niu

class LeNet(nn.Module):

   def __init__(self):

       super(LeNet,self).__init__()

       #Conv1 和 Conv2:卷积层,每个层输出在卷积核(小尺寸的权重张量)和同样尺寸输入区域之间的点积;

       self.conv1 = nn.Conv2d(1,10,kernel_size=5)

       self.conv2 = nn.Conv2d(10,20,kernel_size=5)

       self.conv2_drop = nn.Dropout2d()

       self.fc1 = nn.Linear(320,50)

       self.fc2 = nn.Linear(50,10)

   def forward(self,x):

       x = F.relu(F.max_pool2d(self.conv1(x),2)) #使用 max 运算执行特定区域的下采样(通常 2x2 像素);

       x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)),2))

       x = x.view(-1, 320)

       x = F.relu(self.fc1(x))  #修正线性单元函数,使用逐元素的激活函数 max(0,x);

       x = F.dropout(x, training=self.training) #Dropout2D随机将输入张量的所有通道设为零。当特征图具备强相关时,dropout2D 提升特征图之间的独立性;

       x = self.fc2(x)

       return F.log_softmax(x, dim=1)  #将 Log(Softmax(x)) 函数应用到 n 维输入张量,以使输出在 0 到 1 之间。

#创建 LeNet 类后,创建对象并移至 GPU

model = LeNet()

cuda_gpu = torch.cuda.is_available()

if cuda_gpu:

   model.cuda()

print ('MNIST_net model:\n')

print (model)





相关文章
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
163 6
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
86 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
架构学习:7种负载均衡算法策略
四层负载均衡包括数据链路层、网络层和应用层负载均衡。数据链路层通过修改MAC地址转发帧;网络层通过改变IP地址实现数据包转发;应用层有多种策略,如轮循、权重轮循、随机、权重随机、一致性哈希、响应速度和最少连接数均衡,确保请求合理分配到服务器,提升性能与稳定性。
1214 11
架构学习:7种负载均衡算法策略
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
1589 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
574 6
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
447 1
【博士每天一篇文献-算法】改进的PNN架构Lifelong learning with dynamically expandable networks
本文介绍了一种名为Dynamically Expandable Network(DEN)的深度神经网络架构,它能够在学习新任务的同时保持对旧任务的记忆,并通过动态扩展网络容量和选择性重训练机制,有效防止语义漂移,实现终身学习。
180 9
【博士每天一篇文献-算法】改进的PNN架构Progressive learning A deep learning framework for continual learning
本文提出了一种名为“Progressive learning”的深度学习框架,通过结合课程选择、渐进式模型容量增长和剪枝机制来解决持续学习问题,有效避免了灾难性遗忘并提高了学习效率。
275 4
突击面试:解密面试官的算法题集合
突击面试:解密面试官的算法题集合

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问