码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • NNDL 实验六 卷积神经网络(2)LeNet & ResNet


    目录

    5.3 基于LeNet实现手写体数字识别实验

    5.3.2 模型构建

    5.3.3 模型训练

    5.3.4 模型评价

    5.3.5 模型预测

    使用前馈神经网络实现MNIST识别,与LeNet效果对比。(选做)

    可视化LeNet中的部分特征图和卷积核,谈谈自己的看法。(选做)


    手写体数字识别是计算机视觉中最常用的图像分类任务,让计算机识别出给定图片中的手写体数字(0-9共10个数字)。由于手写体风格差异很大,因此手写体数字识别是具有一定难度的任务。

    我们采用常用的手写数字识别数据集:MNIST数据集。

    MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges

    MNIST数据集是计算机视觉领域的经典入门数据集,包含了60,000个训练样本和10,000个测试样本。

    这些数字已经过尺寸标准化并位于图像中心,图像是固定大小(28×28像素)。

    5.3 基于LeNet实现手写体数字识别实验

    LeNet-5虽然提出的时间比较早,但它是一个非常成功的神经网络模型。

    基于LeNet-5的手写数字识别系统在20世纪90年代被美国很多银行使用,用来识别支票上面的手写数字。

    5.3.2 模型构建

    这里的LeNet-5和原始版本有4点不同:

    1. C3层没有使用连接表来减少卷积数量。
    2. 汇聚层使用了简单的平均汇聚,没有引入权重和偏置参数以及非线性激活函数。
    3. 卷积层的激活函数使用ReLU函数。
    4. 最后的输出层为一个全连接线性层。

    网络共有7层,包含3个卷积层、2个汇聚层以及2个全连接层的简单卷积神经网络接,受输入图像大小为32×32=1024,输出对应10个类别的得分。

    1.测试LeNet-5模型,构造一个形状为 [1,1,32,32]的输入数据送入网络,观察每一层特征图的形状变化。

    2.

    使用自定义算子,构建LeNet-5模型

    自定义的Conv2D和Pool2D算子中包含多个for循环,所以运算速度比较慢。

    飞桨框架中,针对卷积层算子和汇聚层算子进行了速度上的优化,这里基于paddle.nn.Conv2D、paddle.nn.MaxPool2D和paddle.nn.AvgPool2D构建LeNet-5模型,对比与上边实现的模型的运算速度。

    使用pytorch中的相应算子,构建LeNet-5模型

    torch.nn.Conv2d();torch.nn.MaxPool2d();torch.nn.avg_pool2d()

    3.测试两个网络的运算速度。

    4.令两个网络加载同样的权重,测试一下两个网络的输出结果是否一致。

    5.统计LeNet-5模型的参数量和计算量。

    在飞桨中,还可以使用paddle.flopsAPI自动统计计算量。pytorch可以么?

    5.3.3 模型训练

    使用交叉熵损失函数,并用随机梯度下降法作为优化器来训练LeNet-5网络。
    用RunnerV3在训练集上训练5个epoch,并保存准确率最高的模型作为最佳模型。

    5.3.4 模型评价

    使用测试数据对在训练过程中保存的最佳模型进行评价,观察模型在测试集上的准确率以及损失变化情况。

    5.3.5 模型预测

    同样地,我们也可以使用保存好的模型,对测试集中的某一个数据进行模型预测,观察模型效果。


    使用前馈神经网络实现MNIST识别,与LeNet效果对比。(选做)

    可视化LeNet中的部分特征图和卷积核,谈谈自己的看法。(选做)

    斋藤康毅:

    深度学习入门:基于Python的理论与实现 (ituring.com.cn)

     

    ​​​​​​​ 

     

     

     ref:

    NNDL 实验5(上) - HBU_DAVID - 博客园 (cnblogs.com)

    NNDL 实验5(下) - HBU_DAVID - 博客园 (cnblogs.com)

    6. 卷积神经网络 — 动手学深度学习 2.0.0-beta1 documentation (d2l.ai)

    7. 现代卷积神经网络 — 动手学深度学习 2.0.0-beta1 documentation (d2l.ai)

  • 相关阅读:
    [【linux_centOS】]没有javac 编译命令,安装它的时候又没dnf命令,真搞人心态啊!!!
    目标检测—Yolo系列(YOLOv1/2/v3/4/5/x/6/7/8)
    微电网优化调度|基于多目标粒子群算法的微电网优化调度【风、光、储能、柴油机、电网交互燃汽轮机】(Matlab代码实现)
    机器学习方法之k近邻方法的综述
    c语言练习71: 找出数组的最⼤公约数
    MySQL库的操作
    曝iPhone 16 Pro加入两款全新配色:辨识度拉满
    cas单点登录原理与实现(整合springsecurity)
    卸载各种方式安装的K8S集群
    多态day02
  • 原文地址:https://blog.csdn.net/qq_38975453/article/details/126799661
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号