Machine-Learning

This is my first ML project.

手写数字识别 (注:CNN)

一、准备工作

1.收集数据

1)可以手动下载数据在http://yann.lecun.com/exdb/mnist/

2)当然代码也会自己下载数据集

(注:国内小伙伴最好手动下载)

2.选择语言以及第三方库 python

TensorFlow

3.选择学习方法 4层神经网络

4.IDE选择 pycharm

二、实际操作 大致逻辑:三个函数即可

        add_layer() 搭建神经网络的隐藏层和输出层

        build_nn()        把四层神经网络连接起来
        train_nn()         载入数据训练神经网络  

1.首先导入所需要的库,还有利用代码下载网络上的数据集

2.载入数据集,并且定义输入的数据格式,因为每张图片都是2828像素的图片,所以要把他们转化为矩阵的格式就是784个单位,输出的格式呢是10个单位,以为0-9有十种,所一定一个110的矩阵输出。 3.构建隐藏层和输出层 4.连接神经网络 5.训练神经网络

先载入数据

4 在机器学习中的训练中往往会造成损失(loss),为了我们的模型更加准确我们要降低他们的损失,所以这里我们选择梯度下降(GradientDescent)的方法来降低我们的损失。

5 在我们之前已经定义了x,y等变量,但是这个时候他还没有值,TF中有sess这样的指针,可以只想当前计算的元素来赋予值,这样就把我们真个程序联动了起来

6 通过两个循环进行神经网络的训练,并且计算出每次训练后的错误率

7 计算最后的准确率,并且打印出来

8 最后的结果展示

9

在这之余还学习了用TensorBoard的可视化和利用web可视化,但是使用并不熟练,博文会在后期补充。