基础练习-mnist手写数据集识别
照着书实现了一下mnist手写数据集识别这个深度学习中的”hello,world”
基础概念
第一层接收输入信号,最后一层返回输出信号,这些网络通常都是前馈神经网络
传递函数:最常用的一种传递函数就是sigmoid函数,值域为(0,1)
一般情况下,前馈神经网络的最后一层会采用一个softmax函数,这样可以方便地用后验概率解释网络的输出
MNIST手写数字数据集
1 |
|
Extracting Data/data\train-images-idx3-ubyte.gz
Extracting Data/data\train-labels-idx1-ubyte.gz
Extracting Data/data\t10k-images-idx3-ubyte.gz
Extracting Data/data\t10k-labels-idx1-ubyte.gz
输入数据: [[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
...
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]]
输入数据的shape (55000, 784)
mnist数据集 输入图片是个550000x784的矩阵,第一个维度代表图片索引,第二个
维度代表图像像素,28x28像素的图片,共有10个类别
所以先创建一个[None,784]的占位符x和一个[None,10]的占位符y
交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性。交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。 [
1 |
|
Extracting Data/data/train-images-idx3-ubyte.gz
Extracting Data/data/train-labels-idx1-ubyte.gz
Extracting Data/data/t10k-images-idx3-ubyte.gz
Extracting Data/data/t10k-labels-idx1-ubyte.gz
Epoch: 0001 cost= 8.901484704
Epoch: 0002 cost= 4.491928911
Epoch: 0003 cost= 3.105935341
Epoch: 0004 cost= 2.460903181
Epoch: 0005 cost= 2.088093793
Epoch: 0006 cost= 1.843727299
Epoch: 0007 cost= 1.670136872
Epoch: 0008 cost= 1.539499564
Epoch: 0009 cost= 1.437489002
Epoch: 0010 cost= 1.355080850
Epoch: 0011 cost= 1.287055298
Epoch: 0012 cost= 1.229517875
Epoch: 0013 cost= 1.180266858
Epoch: 0014 cost= 1.137388955
Epoch: 0015 cost= 1.099723647
Epoch: 0016 cost= 1.066415745
Epoch: 0017 cost= 1.036452132
Epoch: 0018 cost= 1.009471819
Epoch: 0019 cost= 0.985050059
Epoch: 0020 cost= 0.962679997
Epoch: 0021 cost= 0.942112822
Epoch: 0022 cost= 0.923188624
Epoch: 0023 cost= 0.905731321
Epoch: 0024 cost= 0.889469135
Epoch: 0025 cost= 0.874153477
Finshed!
Model saved in file:log/521model.ckpt
Default GPU Device:/device:GPU:0
Starting 2nd session...
INFO:tensorflow:Restoring parameters from log/521model.ckpt
Accuracy: 0.8259
[2 8] [[5.4470024e-06 1.0342207e-14 9.9999440e-01 8.0820775e-12 4.5177516e-12
3.1603236e-16 6.3706992e-08 3.8312063e-15 7.3337933e-11 3.1762011e-18]
[2.8309601e-04 9.6081327e-05 1.4640624e-03 3.5183481e-10 1.6233769e-03
3.4435538e-03 1.4779908e-02 9.2782180e-08 9.7314465e-01 5.1651290e-03]] [[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]]
基础练习-mnist手写数据集识别
https://shanhainanhua.github.io/2019/10/20/基础练习-mnist手写数据集识别/