tensorflow学习
- 构造线性回归数据
- 定义输入层
- 设计神经网络中间层
- 定义神经网络输出层
- 计算二次代价函数,构建梯度下降
- 进行训练,获取预测值
- 画图展示
代码
展示
手写数字分类
MNIST数据集
MNIST数据集的官网:Yann LeCun's website下载下来的数据集被分成两部分:60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)
数据集详情
每一张图片包含28*28个像素,我们把这一个数组展开成一个向量,长度是28*28=784。因此在
MNIST训练数据集中mnist.train.images 是一个形状为 [60000, 784] 的张量,第一个维度数字用
来索引图片,第二个维度数字用来索引每张图片中的像素点。图片里的某个像素的强度值介于0-1
之间。
神经网络搭建
Softmax函数
代码
输出:
优化代码
优化方面:
①批次个数减小到20
②权值不再为0,改为随机数,设置参数要尽可能小
③增加一个隐藏层,节点数是sqrt(n*l),其中n是输入节点数,l是输出节点数,故为89
④代价函数更换为:交叉熵
⑤梯度下降函数更换为-->动量随机梯度下降,如果上次的准确率比这次准确率还要大,则将0.2乘以0.5
代码:
输出: