这篇文章介绍tensorflow里面一个简单的机器学习算法 Softmax Regression,如果知道神经网络概念,可以把它当作是一个没有隐含层的、最浅的神经网络。基于softmax实现数字识别这里分四个部分来实现。tensorflow越来越强大,盖过了其他同类项目,迟早像android一样风靡全球,应用各种行业。
一、定义算法公式。
1.先获取数据集并查看数据集情况
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/dataset",one_hot=True)
通过上面代码获取数据集,
数据集共包含四个IDX格式文件,IDX格式是一种用来存储向量与多维度矩阵的文件格式:
- train-images-idx3-ubyte.gz: 训练集图片 - 55000 个 训练样本, 验证集有5000 个样本
- train-labels-idx1-ubyte.gz: 训练集图片对应的数字标签
- t10k-images-idx3-ubyte.gz: 测试集图片 - 10000 个样本
- t10k-labels-idx1-ubyte.gz: 测试集图片对应的数字标签
每个集合包含图片和标签两部分内容,图片为28*28点阵图;标签为0-9之间数字。
这些文件本身并没有使用标准的图片格式储存。使用时需要进行解压和重构。
每个样本图片是28像素*28像素大小的灰度图片,如下图;这里定空白部分全部为0,有笔迹部分根据颜色深浅可以在(0,1]之间取值,不过这个是一个简单的神经网络,有笔迹部分全部点为1。图片是二维图片,把它转变成