CNN经典网络模型(一):LeNet简介及代码实现(PyTorch超详细注释版)

目录

一. 开发背景

二. 网络结构

三. 模型特点

四. 代码实现

五. 参考内容

六. 代码及数据集下载


一. 开发背景

Lenet 是一系列网络的合称,包括 Lenet1 - Lenet5,由 Yann LeCun 等人 在1990年《Handwritten Digit Recognition with a Back-Propagation Network》中提出,是卷积神经网络的开山之作,也是将深度学习推向繁荣的一座里程碑。

LeNet首次采用了卷积层、池化层这两个全新的神经网络组件,接收灰度图像,并输出其中包含的手写数字,在手写字符识别任务上取得了瞩目的准确率。LeNet网络的一系列的版本,以LeNet-5版本最为著名,也是LeNet系列中效果最佳的版本。

二. 网络结构

Lenet是一个 7 层的神经网络,包含 3 个卷积层,2 个池化层,1 个全连接层,1个输出层。其中所有卷积层的卷积核都为 5x5,步长=1,池化方法都为平均池化,激活函数为 Sigmoid(目前使用的Lenet已改为ReLu),网络结构如下:

 网络结构详解:深度学习经典网络解析图像分类篇(一):LeNet-5

三. 模型特点

  1. 首次提出卷积神经网络基本框架: 卷积层,池化层,全连接层;
  2. 卷积层的权重共享,相较于全连接层使用更少参数,节省了计算量与内存空间;
  3. 卷积层的局部连接,保证图像的空间相关性;
  4. 使用映射到空间均值下采样,减少特征数量;
  5. 使用双曲线(tanh)或S型(sigmoid)形式的非线性激活函数。

四. 代码实现

  • model.py:定义LeNet网络模型
  • train.py:加载数据集并训练,计算loss和accuracy,保存训练好的网络参数
  • predict.py:用自己的数据集进行分类测试

1. model.py

# 导入pytorch库
import torch
# 导入torch.nn模块
from torch import nn


# 定义LeNet网络模型
# MyLeNet5(子类)继承nn.Module(父类)
class MyLeNet5(nn.Module):
    # 子类继承中重新定义Module类的__init__()和forward()函数
    # init()函数:进行初始化,申明模型中各层的定义
    def __init__(self):
        # super:引入父类的初始化方法给子类进行初始化
        super(MyLeNet5, self).__init__()
        # 卷积层,输入大小为28*28,输出大小为28*28,输入通道为1,输出为6,卷积核为5,扩充边缘为2
        self.c1 = nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5, padding=2)
        # 使用sigmoid作为激活函数
        self.Sigmoid = nn.Sigmoid()
        # AvgPool2d:二维平均池化操作
        # 池化层,输入大小为28*28,输出大小为14*14,输入通道为6,输出为6,卷积核为2,步长为2
        self.s2 = nn.AvgPool2d(kernel_size=2, stride=2)
        # 卷积层,输入大小为14*14,输出大小为10*10,输入通道为6,输出为16,卷积核为5
        self.c3 = nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5)
        # 池化层,输入大小为10*10,输出大小为5*5,输入通道为16,输出为16,卷积核为2,步长为2
        self.s4 = nn.AvgPool2d(kernel_size=2, stride=2)
        # 卷积层,输入大小为5*5,输出大小为1*1,输入通道为16,输出为120,卷积核为5
        self.c5 = nn.Conv2d(in_channels=16, ou
<think>好的,我现在需要帮用户了解荣耀平板的分屏操作教程。首先,用户提到他们参考了三个引用内容,其中引用[1]是关于将平板作为笔记本电脑分屏的教程,引用[2]和[3]是关于荣耀平板2的评测和对比。用户的问题是如何在荣耀平板上进行分屏操作,而不是作为外接分屏设备使用。所以需要先确定用户是想知道平板自身应用分屏,还是作为笔记本的副屏。不过根据用户的问题“荣耀平板分屏操作方法”,应该是指平板本身的多任务分屏功能。 接下来,我需要回忆下华为/荣耀平板的分屏操作步骤。通常安卓平板的分屏方法有两种:通过最近任务视图启动分屏,或者通过手势操作。例如,在支持多窗口的系统中,用户可以长按应用卡片选择分屏,或者使用三指上滑等手势。但不同型号和系统本可能操作略有不同,比如EMUI或Magic UI的不同本。 根据引用[1],用户提到的教程是将平板作为笔记本的分屏,这需要软件如Spacedesk或Splashtop,但用户现在的问题是关于平板自身分屏,所以需要排除这部分,专注于平板内部分屏功能。引用[2]和[3]提到荣耀平板2的发布信息,可能系统本较旧,所以需要考虑当时的系统是否支持分屏,以及现在可能的更新情况。 可能需要指出分屏操作的具体步骤,例如:1. 打开第个应用;2. 进入多任务视图;3. 选择分屏;4. 选择第二个应用。同时,需要注意是否有特定手势,如侧边栏滑动打开第二个应用。此外,有些应用可能不支持分屏,需要提醒用户注意这点。 另外,需要确认荣耀平板的系统是否基于EMUI,以及不同本的分屏操作是否有差异。例如,EMUI 10可能支持智慧分屏,而更早的本可能通过长按多任务键。由于引用中提到的是荣耀平板2,发布时间是2016年,可能搭载的是EMUI 4.x或5.x,这时候的分屏操作可能与现在不同。但考虑到用户可能现在使用的较新型号,所以可能需要覆盖通用步骤和可能的本差异。 最后,需要以清晰的结构分步骤说明,并指出可能的注意事项,比如应用兼容性,调整分屏比例等。如果有引用相关内容,需要正确标注,但根据提供的引用内容,引用[1]是关于外接分屏,引用[2][3]是产品介绍,可能没有直接的分屏操作步骤,因此可能无法直接引用,但需要确保回答准确。</think>### 荣耀平板分屏操作教程 荣耀平板的分屏功能允许用户同时使用两个应用,提升多任务处理效率。以下是详细操作步骤(以EMUI或Magic UI系统为例): #### **方法:手势分屏** 1. **打开第个应用** 正常启动需要使用的第个应用(如浏览器、文档编辑器等)。 2. **激活分屏模式** - 从屏幕左/右侧边缘向**内滑动并停顿**,调出侧边栏[^2]。 - 在侧边栏中选择第二个应用,拖动到屏幕空白区域即可实现分屏。 3. **调整分屏比例** 按住中间的**分界线**上下滑动,可调整两个应用的显示比例。 #### **方法二:最近任务分屏** 1. **进入多任务视图** 点击屏幕底部的**方形虚拟按键**(或上滑悬停)进入最近任务界面。 2. **选择分屏应用** - 长按需要分屏的**应用卡片**,点击弹出的「分屏」图标[^3]。 - 随后选择第二个应用,系统会自动分屏显示。 #### **注意事项** - **兼容性**:部分应用不支持分屏模式,需根据系统提示操作。 - **退出分屏**:拖动分界线至屏幕顶部或底部可关闭对应应用的分屏。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

华科附小第一名

您的支持对我的前行很重要!

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

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

打赏作者

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

抵扣说明:

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

余额充值