LeNet

部署运行你感兴趣的模型镜像

前言

2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名,这两类模型结构的共同特点是层次更深了。VGG继承了LeNet以及AlexNet的一些框架结构,而GoogLeNet则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多,GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍,因此在内存或计算资源有限时,GoogleNet是比较好的选择;从模型结果来看,GoogLeNet的性能却更加优越。

LeNet

LeNet 是一种经典的卷积神经网络(CNN),由 Yann LeCun 等人在 1990 年代初提出,主要用于手写数字识别任务(如 MNIST 数据集)。LeNet 是最早的卷积神经网络之一,奠定了现代深度学习的基础。以下是 LeNet 的详细解析:

1. LeNet 的架构

LeNet 的原始版本(LeNet-5)包含 7 层,其中包括 2 个卷积层、2 个池化层、2 个全连接层和一个输出层。以下是 LeNet-5 的具体架构:
在这里插入图片描述
在这里插入图片描述

2. LeNet 的关键特点

卷积层

  • 卷积核:LeNet 使用了小尺寸(5×5)的卷积核,能够提取局部特征。
  • 多通道输出:通过多个卷积核,LeNet 能够提取多种特征,增加了模型的表达能力。

池化层

  • 最大池化:LeNet 使用了最大池化操作,减少了特征图的空间维度,同时保留了重要特征,提高了模型的鲁棒性。

全连接层

  • 特征转换:全连接层将卷积层提取的局部特征组合成全局特征,用于分类或回归任务。
  • 输出层:最后一个全连接层输出分类结果,通常使用 Softmax 激活函数将输出转换为概率分布。

激活函数

LeNet 使用了 Sigmoid 或 Tanh 激活函数,这些激活函数能够引入非线性特性,使得网络能够学习复杂的模式。

3. LeNet 的优点

  • 简单高效:LeNet 的结构相对简单,计算量较小,适合在资源受限的设备上运行。
  • 开创性:LeNet 是最早的卷积神经网络之一,为后续的深度学习模型奠定了基础。
  • 鲁棒性:通过卷积层和池化层的组合,LeNet 能够提取鲁棒的特征,对输入图像的平移和缩放具有一定的不变性。

4. LeNet 的缺点

  • 模型容量有限:LeNet 的结构较浅,参数数量较少,难以学习到复杂的特征,对于更复杂的任务(如大规模图像分类)性能有限。
  • 过拟合风险:由于模型容量有限,LeNet 在大规模数据集上容易过拟合。

5. LeNet 的应用场景

LeNet 最初是为手写数字识别任务设计的,特别适用于 MNIST 数据集。它也可以用于其他简单的图像分类任务,但随着任务复杂度的增加,其性能可能会受到限制。

6. LeNet 的 PyTorch 实现

以下是一个使用 PyTorch 实现的 LeNet-5 模型的代码示例:

import torch
import torch.nn as nn
import torch.nn.functional as F

class LeNet(nn.Module):
    def __init__(self):
        super(LeNet, self).__init__()
        # 卷积层
        self.conv1 = nn.Conv2d(1, 6, kernel_size=5)  # 输入通道数为1,输出通道数为6
        self.conv2 = nn.Conv2d(6, 16, kernel_size=5) # 输入通道数为6,输出通道数为16
        # 全连接层
        self.fc1 = nn.Linear(16 * 5 * 5, 120)       # 输入特征数为16×5×5,输出特征数为120
        self.fc2 = nn.Linear(120, 84)               # 输入特征数为120,输出特征数为84
        self.fc3 = nn.Linear(84, 10)                # 输入特征数为84,输出特征数为10(分类结果)

    def forward(self, x):
        # 卷积层 + 激活函数 + 池化层
        x = F.relu(self.conv1(x))                   # 第一个卷积层 + ReLU激活函数
        x = F.max_pool2d(x, 2)                      # 第一个池化层
        x = F.relu(self.conv2(x))                   # 第二个卷积层 + ReLU激活函数
        x = F.max_pool2d(x, 2)                      # 第二个池化层
        # 展平
        x = x.view(-1, 16 * 5 * 5)                  # 将特征图展平为一维向量
        # 全连接层 + 激活函数
        x = F.relu(self.fc1(x))                     # 第一个全连接层 + ReLU激活函数
        x = F.relu(self.fc2(x))                     # 第二个全连接层 + ReLU激活函数
        x = self.fc3(x)                             # 输出层
        return x

# 测试 LeNet 模型
model = LeNet()
print(model)

7. 总结

LeNet 是卷积神经网络的经典之作,它首次将卷积层、池化层和全连接层结合起来,用于图像分类任务。虽然 LeNet 的结构相对简单,但它为后续的深度学习模型提供了重要的设计思路。在现代深度学习中,LeNet 仍然被用作教学和研究的基础模型,帮助初学者理解卷积神经网络的基本原理。

来自

  • kimi LeNet

您可能感兴趣的与本文相关的镜像

PyTorch 2.8

PyTorch 2.8

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
10-26
LeNet通常指LeNet-5,它是卷积神经网络的开山之作,由Yann LeCun教授于1998年在论文“Gradient-based learning applied to document recognition”中提出,是第一个成功应用于数字识别问题的卷积神经网络[^1][^4]。 LeNet-5的原理涉及组合使用卷积层、非线性激活函数sigmoid和全连接层。在卷积神经网络中,通过卷积层和池化层自动提取图像特征,减少了人工设计特征的工作量。为构造高性能的卷积神经网络,通常对卷积层进行排列,逐渐降低其表示的空间分辨率,同时增加通道数。并且在传统的卷积神经网络中,卷积块编码得到的表征在输出之前需由一个或多个全连接层进行处理[^1][^3]。 在应用方面,LeNet-5在手写数字识别任务中取得了巨大成功。尽管现代CNN模型更加复杂,但LeNet-5的简洁性和高效性使其在教育、研究和轻量化应用中具有重要价值,未来还将继续在深度学习领域发挥重要作用,为复杂问题提供高效的解决方案[^1]。 ```python # 以下是一个简单的LeNet-5的PyTorch实现示例 import torch import torch.nn as nn class LeNet5(nn.Module): def __init__(self): super(LeNet5, self).__init__() self.conv1 = nn.Conv2d(1, 6, kernel_size=5) self.pool1 = nn.MaxPool2d(kernel_size=2) self.conv2 = nn.Conv2d(6, 16, kernel_size=5) self.pool2 = nn.MaxPool2d(kernel_size=2) self.fc1 = nn.Linear(16 * 4 * 4, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): x = self.pool1(torch.sigmoid(self.conv1(x))) x = self.pool2(torch.sigmoid(self.conv2(x))) x = x.view(-1, 16 * 4 * 4) x = torch.sigmoid(self.fc1(x)) x = torch.sigmoid(self.fc2(x)) x = self.fc3(x) return x # 创建模型实例 model = LeNet5() print(model) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静思心远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值