手写识别实操案例

前言

本实操案例是对手写识别教学案例的实操步骤,旨在同学们可以直接根据本文档所写的实操步骤,完成手写识别案例中神经网络的执行、调参过程,最终使精确度达到很高的一个水平,以对神经网络有一个大致的了解。

step1:下载资料包

本教学案例所有的文件都以放在gitee码云上,同学们请提前进行下载。下载地址如下:
[资料包]:https://gitee.com/ai-case-study-group/lesson-plan

找到克隆/下载按钮,点击按钮,弹出浮窗,然后点击浮窗最下面的下载zip进行下载。

image-20210714213212531

下载完成后,你将得到一个压缩包,然后将其解压出来,得到 lesson-plan文件夹。点击文件夹,如下图所示:

image-20210714213448437

再点击手写识别文件夹,得到以下文件目录:

image-20210714213620251

这些就是本教学案例所需要的所有资料了。

step2:安装python

打开手写识别文件夹中的安装包文件夹,双击python3.7.1可执行文件,进行安装。

image-20210714213841779

弹出窗口

第一步,勾选第二个复选框 Add Python 3.7 to PATH,然后点击第二个选项进行自定义安装。

step1

第二步,默认全选,直接点击next就行了

image-20210714214522693

第三步,勾选第四个复选框,将python的执行路径添加到系统环境变量,然后选择python的安装目录。在这里我建议同学们把所有这些编译环境都单独放在非系统盘的一个文件夹中,方便后续的环境配置,也便于集中管理。最后点击install进行安装。

image-20210715152936599

第四步,检查是否安装成功。同时按住win+R,在运行里面输入cmd,按回车执行。

image-20210715203604720

然后出现终端控制台,输入python,出现python的版本信息,说明安装成功!

image-20210715204058344

step3:安装jupyter notebook

Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、方程式、可视化和文本的文档。就是在浏览器上运行的python编译器。最大的优点是可以将代码按步骤(块)运行,这在神经网络的编写代码方面很是方便。

第一步,打开命令提示符,进入到python的安装文件夹下的Scripts文件夹中,你在这个文件夹中就可以看到pip.exe。

image-20210715205029641

点击窗口栏中的地址栏,输入cmd,进入当前路径的命令提示符。

image-20210715205115417

输入这行命令:python -m pip install --upgrade pip,等待安装完成。

image-20210715205658134

继续输入命令:pip install jupyter,等待安装完成。image-20210715210449954

完成后script文件夹中会出现很多新的jutpter有关的文件。

image-20210715210415844

继续输入以下指令,启动jupyter notebook

jupyter notebook

image-20210715211429511

然后会跳转到浏览器,显示python安装目录中Script下的的文件目录。

image-20210715211613700

注意:如果出现以下情况

image-20210715211838106

请在用户目录C:\Users\(用户名).jupyter下找到jupyter配置文件jupyter_notebook_config.py,将该文件的c.NotebookApp.notebook_dir =“文件路径” 修改为本地存在的目录,修改之后,jupyter notebook将会从这个目录启动。

image-20210715212059248

按下Ctrl+F,打开查找。输入c.NotebookApp.notebook_dir

image-20210715212159801

去掉前面的#号,在单引号里输入启动路径

image-20210715212246846

step4:安装其他的库

第一步,安装whl。whl是python中特有的安装包。进入Scripts路径的命令提示符中输入pip install wheel。出现Successfully installed这表明安装成功。

image-20210715213510060

第二步,安装numpy库。这时打开资料包里的安装包,把以下两个文件复制到Script文件夹中。

image-20210715213721207

复制,粘贴。

image-20210715213804838

然后,进入Scripts路径的命令提示符中输入pip install numpy-1.17.3-cp37-cp37m-win_amd64.whl,就可以安装了。成功之后也会出现Successfully installed。

image-20210715214028756

第三步,安装matplotlib库

进入Scripts路径的命令提示符中输入pip install matplotlib-3.1.1-cp37-cp37m-win_amd64.whl,就可以安装了。成功之后也会出现Successfully installed。

image-20210715214211312

第四步,安装tqdm库,进入Scripts路径的命令提示符中输入pip install tqdm,就可以安装了。成功之后也会出现Successfully installed。

image-20210715214919035

step5:创建python工作空间

在python安装目录中创建一个新文件夹,命名为workspace。

image-20210715215249486

然后将案例源码放入workspace文件夹中。

image-20210716112545934

step6:运行案例源码

首先,按住win+R打开终端控制器。

image-20210716114005316

输入jupyter notebook,启动jupyter notebook。

image-20210716114144287

进入python安装目录,打开workspace文件夹,进入源码文件夹,打开Handweriter recognition.ipynb

image-20210716114335309

进入到代码编辑界面

image-20210716124829086

此案例源码一共有43块代码,可由从上到下的顺序依次运行。

image-20210716125556953

选中一块代码块,变成绿色后,点击上方的运行,就开始运行这块代码块了。运行时,代码块会处于*号状态。有些代码块的运行时间会比较久,请耐心等待,这些代码块都添加了进度条,不会让你枯燥等待。

当运行到第10块代码块开始,就可以看到数据集里的手写识别所用的图片了。

第10块是训练集中的图片。

image-20210716130545338

第11块是验证集中的图片

image-20210716130555578

第12块是测试集中的图片

image-20210716130520834

当运行到第27块代码时,我们会得到识别图片中数字的精确度的初始值。可以看出都是在10%左右。相当于0-9十个数字中随机选一个,这时我们的精确度可以说是非常低的。

image-20210716132436359

但是接下来的代码块将进行训练,训练10次。

image-20210716132817798

训练结束后的精确度相比于之前有一个很大的提高。

image-20210716132906770

之后,将得到的数据进行曲线化,这样有一个更加直观的感受。

这是10次训练中的误差值,可以看到一直在减小。

image-20210716133043354

这是10次训练中的精确值,可以看到一直在增大。

image-20210716133133428

这时训练10次的结果,继续运行下面的代码,我们试一试训练100次将会得到什么结果。

image-20210716133303671

这时的训练集已经快达到100%的精确度了,再看看对应曲线表示。

这是误差值,已经快趋近于0了

image-20210716133410561

这时精确度,已经快趋近于1了

image-20210716133421912

这时,你可能会想,训练了10次就有从10%到97%的提升,训练100次为什么就达不到100%呢?先不要着急,我们继续向下运行,看看最后20次的曲线情况。

这是误差值,发现黑线再上下波动,红线缓缓下降,并且相差很大

image-20210716133748703

这是精确度。也发现黑线再上下波动,红线缓缓下降,并且相差很大

image-20210716133915086

这就说明出现了过拟合的现象。至于怎么解决这个问题,那么就很复杂了。本教学案例针对的入门阶段,解决方法就不继续讲解了。代码也就到此结束了。

结尾

本实操案例旨在让同学们快速上手,让同学们可以直接的看到神经网络的训练结果,以激发同学门对神经网络这一学科的兴趣。如同学们想深入理解代码原理,请看资料包中的手写识别教学案例,其中对代码进行了解释。

最后,希望同学们可以加入到神经网络的学习当中,跟我一起探索人工智能的奥秘。我们的征途是星辰大海!

这就说明出现了过拟合的现象。至于怎么解决这个问题,那么就很复杂了。本教学案例针对的入门阶段,解决方法就不继续讲解了。代码也就到此结束了。

结尾

本实操案例旨在让同学们快速上手,让同学们可以直接的看到神经网络的训练结果,以激发同学门对神经网络这一学科的兴趣。如同学们想深入理解代码原理,请看资料包中的手写识别教学案例,其中对代码进行了解释。

最后,希望同学们可以加入到神经网络的学习当中,跟我一起探索人工智能的奥秘。我们的征途是星辰大海!

猜你喜欢

转载自blog.csdn.net/fayoung3568/article/details/129778426