百度paddlepaddle入门-8(代码片段)

yuzaihuan yuzaihuan     2023-04-20     614

关键词:


 

数字识别是计算机从纸质文档、照片或其他来源接收、理解并识别可读的数字的能力,目前比较受关注的是手写数字识别。手写数字识别是一个典型的图像分类问题,已经被广泛应用于汇款单号识别、手写邮政编码识别,大大缩短了业务处理时间,提升了工作效率和质量。

手写数字识别是每个深度学习者的必经之路,正如学习编程时,我们输入的第一个程序是打印"Hello World!"一样。 在飞桨的入门教程中,我们选取了基于MNIST数据集的手写数字识别模型作为启蒙教材,以便更好的帮助用户快速掌握飞桨平台的使用。

MNIST是深度学习领域标准、易用的成熟数据集,包含60000条训练样本和10000条测试样本,由一系列如下图所示的手写数字图片和对应标签。其中每张图片都是28x28的像素矩阵,经过了大小归一化和居中处理,标签对应着0~9的10个数字。

技术图片

MNIST数据集是从 NIST 的Special Database 3(SD-3)和Special Database 1(SD-1)构建而来。由于SD-3是由美国人口调查局的员工进行标注,SD-1是由美国高中生进行标注,因此SD-3比SD-1更干净也更容易识别。Yann LeCun等人从SD-1和SD-3中各取一半作为MNIST的训练集和测试集,其中训练集来自250位不同的标注员,且训练集和测试集的标注员完全不同。

MNIST吸引了大量的科学家基于此数据集训练模型。1998年,LeCun分别用单层线性分类器、多层感知器(Multilayer Perceptron, MLP)和多层卷积神经网络LeNet进行实验,使得测试集上的误差不断下降(从12%下降到0.7%)。在研究过程中,LeCun提出了卷积神经网络(Convolutional Neural Network),大幅度地提高了手写字符的识别能力,也因此成为了深度学习领域的奠基人之一。此后,科学家们又基于K近邻(K-Nearest Neighbors)算法、支持向量机(SVM)、神经网络和Boosting方法等做了大量实验,并采用多种预处理方法(如去除歪曲、去噪、模糊等)来提高识别的准确率。

如今的深度学习领域,卷积神经网络占据了至关重要的地位,从最早Yann LeCun提出的简单LeNet,到如今ImageNet大赛上的优胜模型VGGNet、GoogLeNet、ResNet等,人们在图像分类领域,利用卷积神经网络得到了一系列惊人的结果。

飞桨各模型代码结构一致,大大降低了用户的操作难度

在探讨手写数字识别模型的实现方案之前,我们先“偷看”一下程序代码。不难发现,与上一章学习过的“房价预测”模型的代码比较,二者是极为相似的,如下图所示。

  • 从整体结构上看,均为数据处理、定义网络结构和训练过程三个部分
  • 从代码细节来看,两个模型的程序也高度一致。

图2:“房价预测”和“手写数字识别”两者的实现代码“神似”

技术图片

 

这就是我们使用飞桨框架搭建深度学习模型的优势,只要完成一个模型的程序案例学习,其它任务都是触类旁通的。在工业实践中,多数使用飞桨框架搭建模型的程序员无需每次都另起炉灶,而是在飞桨模型库中寻找与目标任务类似的模型,在该模型的代码上少量修改即可完成新任务。


 

"横纵式"建模方法,轻松掌握深度学习建模

在接下来的学习中,为了便于大家的理解,我们采用飞桨为您专门设计的“横纵式”建模方法。 首先概要介绍模型的基本建模结构和极简实现,其次再深入探讨每个模块更复杂但有效的实现方案。例如在网络结构的部分,我们会演示如何从“单层网络”到“多层网络并加入非线性函数”,再到引入善于用于处理图像信号的“卷积神经网络”,如下图所示。

图3:“横纵式”建模方法

技术图片

 

说明:
探讨网络结构如何优化的过程中,程序的其他模块维持不变。

百度飞桨(paddlepaddle)安装(代码片段)

注意:32位pip没有PaddlePaddle源#如果报下列错误,检查Python版本,不能过高也不要太低,并且不能是32位的。ERROR:Couldnotfindaversionthatsatisfiestherequirementpaddlepaddle=-2,4,2(fromversions:none)ERROR:Nomatchingdistributionfoundforpaddlepaddle==2.4.2百度飞桨(P... 查看详情

百度paddlepaddle入门-10(代码片段)

在“手写数字识别”案例的快速入门中,我们调用飞桨提供的API(paddle.dataset.mnist)加载MNIST数据集。但在工业实践中,我们面临的任务和数据环境千差万别,需要编写适合当前任务的数据处理程序。但是编写自定义的数据... 查看详情

百度paddlepaddle入门-9(代码片段)

本节介绍使用飞桨快速实现“手写数字识别”的建模方法。与“房价预测”的案例类似,我们以同样的标准结构实现“手写数字识别”的建模。在后续的课程中,该标准结构会反复出现,逐渐加深我们对深度学... 查看详情

paddlepaddle系列手写数字识别(代码片段)

 最近百度为了推广自家编写对深度学习框架PaddlePaddle不断推出各种比赛。百度声称PaddlePaddle是一个“易学、易用”的开源深度学习框架,然而网上的资料少之又少。虽然百度很用心地提供了许多文档,而且还是中英双语具备... 查看详情

用paddlepaddle实现图像分类-se_resnext初体验(代码片段)

项目地址用PaddlePaddle实现图像分类-SE_ResNeXt-飞桨AIStudio-人工智能学习与实训社区用百度账号登录,然后完善信息,没日运行可以获得8点GPU免费额度,就是说我每天可以用TeslaV10032GB内存的运行环境8小时,是不是很... 查看详情

百度飞桨(paddlepaddle)-数字识别(代码片段)

...nstallmatplotlibnumpy-ihttps://mirror.baidu.com/pypi/simpleD:\\OpenSource\\PaddlePaddle>python-mpipinstallmatplotlibnumpy-ihttps://mirror.baidu.com/pypi/simpleLookinginindexes:https://mirror.baidu.com/pypi/simpleCollectingmatplotlibDownloadinghttps://mirror.baidu.com/pypi/packages/92/01/2c04d328d... 查看详情

强化学习从pg到ppo(基于百度飞桨paddlepaddle+parl)(代码片段)

前段时间抽空学习了《百度强化学习基础课程》强化学习7日打卡营-世界冠军带你从零实践,总共七天的视频+线上作业(视频地址:世界冠军带你从零实践强化学习),让我这个小白基本对于强化学习有了... 查看详情

使用paddlepaddle进行手写数字识别(代码片段)

导读MNIST手写数字数据集作为深度学习入门的数据集是我们经常都会使用到的,包含了0~9共10个数字类别的图片,每张图片的大小为28X28,一共包含了60000张训练集图片和10000张测试集图片。使用PaddlePadlle进行手写数字... 查看详情

[jetson]paddlepaddle2.4.0在jetpack5.0.2源码编译流程(代码片段)

由于官方暂时没有提供jetson对应的jetsonjetpack5.0.2预编译包,因此只有源码编译,本次编译不带Tensorrt,编译已经顺利成功,注意本次使用的设备是jetsonNX测试环境:ubuntu20.04jetpack5.0.2GCC-8.4Softwarepartofjetson-stats4.1.5-(c)202... 查看详情

selenium入门18断言(代码片段)

自动化测试需对比实际结果与预期结果,给出测试结论。1 条件判断if...else...2assert... #coding:utf-8#断言fromseleniumimportwebdriverdr=webdriver.Firefox()dr.get("http://www.baidu.com")#if判断if‘百度‘indr.title:print("testpass")el 查看详情

使用paddlepaddle来预测房价(代码片段)

导读这篇文章我们介绍如何使用paddlepaddle来预测UCI房价,UCI房价数据集一共包含了506条数据,每条数据包含13个特征和该类房价的中位数。paddlepaddle预测房价加载数据集importos,paddleimportnumpyasnp#设置加载数据集的batch_sizeBATC... 查看详情

selenium入门学习(代码片段)

...直接获取到,但是实在没办法,所以学习下selenium。首先百度一下:  Selenium[1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaFire... 查看详情

基于paddlepaddle实现mobilenet_v2复现(代码片段)

基于paddlepaddle实现Mobilenet_v1复现基于paddlepaddle实现Mobilenet_v3复现文章目录一、介绍二、Bottleneckresidualblock结构三、整体网络架构四、论文复现1、导入相关库2、建立基础的代码运行块3、建立Bottleneck_residual_block4、搭建整体的网络... 查看详情

基于paddlepaddle实现mobilenet_v3复现(代码片段)

基于paddlepaddle实现MobileNets_v1复现基于paddlepaddle实现Mobilenet_v2复现文章目录一、介绍二、整体网络架构三、论文复现1、导入工具包2、建立基础的代码运行块3、建立无SE的结构4、建立有SE的结构5、建立分类头6、搭建MobileNetV3_Large... 查看详情

使用paddlepaddle做ocr识别(代码片段)

1.环境配置Python:使用paddlepaddle需要3.6以上的Python版本依赖库:pandas,pipinstallpandas;cv2,pipinstallopencv-python;paddlepaddleCPU版本:pipinstallpaddlepaddle-ihttps://mi 查看详情

百度正式发布paddlepaddle深度强化学习框架parl

...发布在赛事夺冠中起到关键作用的深度强化学习框架 PaddlePaddlePARL,同时开源了基于该框架的NeurIPS2018强化学习赛事的完整训练代码。点击“阅读原文”可查看冠军解决方案。 PaddlePaddlePARL的名字来源于PAddlepaddle Reinfoce... 查看详情

百度paddlepaddle再获新技能智能推荐对话系统控制领域都能搞定!

...都离不开底层深度学习框架的支持。近日,百度深度学习PaddlePaddle正式发布了强化学习框架PARL,同时开源了基于该框架,在NeurIPS2018强化学习赛事中夺冠的模型完整训练代码,再次向业界展示了百度在深度学习领域的技术能力。... 查看详情

paddlepaddle十二生肖分类之模型训练和预测(代码片段)

导读这篇文章我们来介绍如何来使用paddlepaddle来训练一个十二生肖的分类模型,前面两篇文章我们分别介绍了paddlepaddle实现十二生肖的分类之数据的预处理(一)paddlepaddle十二生肖分类之模型(ResNet)构建(二)这篇文章我们主要来... 查看详情