Tensorflow基础(三)--非线性回归、MNIST手写数字识别分类

3-1非线性回归

在这里插入图片描述

3-2 MNIST手写数字识别分类

MNIST数据集

MNIST是在机器学习领域中的一个经典问题。该问题解决的是把28x28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9.

MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片:
在这里插入图片描述它也包含每一张图片对应的标签,告诉我们这个是数字几。比如,上面这四张图片的标签分别是5,0,4,1。

MNIST数据集的官网:Yann LeCun’s website

下载下来的数据被分为两部分,60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。这样的切分很重要,在机器学习模型设计时必须有一个单独的测试数据集不用于训练而是用来评估这个模型的性能,从而更加容易把设计的模型推广到其他数据集上(泛化)。

每一张图片包含28像素X28像素。我们可以用一个数字数组来表示这张图片:
在这里插入图片描述
我们把这一个数组展开成一个向量,长度是28*28=784。因此在 MNIST训练数据集中mnist.train.images 是一个形状为 [60000, 784] 的张量,第一个维度数字用 来索引图片,第二个维度数字用来索引每张图片中的像素点。图片里的某个像素的强度值介于0-1 之间。
在这里插入图片描述
MNIST数据集的标签是介于0-9的数字,我们要把标签转化为“one-hot vectors”。一个one- hot向量除了某一位数字是1以外,其余维度数字都是0,比如标签0将表示为([1,0,0,0,0,0,0,0,0,0]) ,标签3将表示为([0,0,0,1,0,0,0,0,0,0]) 。因此, mnist.train.labels 是一个 [60000, 10] 的数字矩阵。
在这里插入图片描述
构建简单神经网络
一个输入层一个输出层,不含隐藏层。
每张图片有784个像素点,作为输入,一共有10种分类作为输出。
在这里插入图片描述

softmax函数

我们知道MNIST的结果是0-9,我们的模型可能推测出一张图片是数字9的概率是80%,是数字8 的概率是10%,然后其他数字的概率更小,总体概率加起来等于1。这是一个使用softmax回归模 型的经典案例。softmax模型可以用来给不同的对象分配概率。
在这里插入图片描述
比如输出结果为[1,5,3]
在这里插入图片描述
那么它很大概率属于第二个分类。

简单实现MNIST手写数字识别

在这里插入图片描述

发布了35 篇原创文章 · 获赞 7 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/star_of_science/article/details/104221730