AI实战:使用DenseNet网络搭建手写数字识别模型

前言

前段时间,项目中的一个小模块中用到了手写数字识别,走过弯路趟过坑,这里分享出来。


实战

  • 手写数字分类模型v1.0

    1、使用ResNet网络搭建模型

    2、github开源代码:https://github.com/Curt-Park/handwritten_digit_recognition

    3、模型训练准确率:99.6%

    4、训练准确率如此之高,以为万事大吉。在随后的项目实际使用中,13位的数字的整体识别率低于80%,单个数字的识别率低于99%

    5、原因分析

    1)训练数据4万+,对应0-9共10个数字应该不是问题

    2)分析了下识别率差的数字基本都是写的不太规范的,但人看是容易分清楚的。故初步分析是模型泛化能力达不到要求。

    3)分析现有的CNN网络,发现DenseNet比ResNet在很多数据集上面效果都有很很多,故模型改为DenseNet搭建。


  • 手写数字分类模型v2.0

    1、详细介绍:DenseNet—Dense卷积网络

    2、使用DenseNet搭建网络

    3、模型训练准确率:99.83% (比ResNet有提升)

    4、对上面相同的数据进行测试,整体准确率96%以上,单个数字识别率99.8%以上,基本满足了项目要求。


  • DenseNet网络优点

    1.强梯度流

    误差信号可以更直接地传播到早期的层中。这是一种隐含的深度监督,因为早期的层可以从最终的分类层直接获得监督。

    2.参数和计算效率

    对于每个层,RetNet 中的参数与c×c成正比,而 DenseNet 中的参数与1×k×k成正比。

    由于 k<<C, 所以 DenseNet 比 ResNet 的size更小。

    3.更加多样化的特征

    由于 DenseNet 中的每一层都接收前面的所有层作为输入,因此特征更加多样化,并且倾向于有更丰富的模式。

    4.保持低复杂度特征

    在标准ConvNet中,分类器使用最复杂的特征。

    在 DenseNet 中,分类器使用所有复杂级别的特征。它倾向于给出更平滑的决策边界。它还解释了为什么 DenseNet 在训练数据不足时表现良好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

szZack

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

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

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

打赏作者

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

抵扣说明:

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

余额充值