TensorFlow应用机器学习学习笔记

TensorFlow逻辑回归处理MNIST数据集

本节基于回归学习对 MNIST 数据集进行处理,但将添加一些 TensorBoard 总结以便更好地理解 MNIST 数据集。
MNIST由https://www.tensorflow.org/get_started/mnist/beginners提供。

大部分人已经对 MNIST 数据集很熟悉了,它是机器学习的基础,包含手写数字的图像及其标签来说明它是哪个数字。

对于逻辑回归,对输出 y 使用独热(one-hot)编码。因此,有 10 位表示输出,每位的值为 1 或 0,独热意味着对于每个图片的标签 y,10 位中仅有一位的值为 1,其余的为 0。

因此,对于手写数字 8 的图像,其编码值为 [0000000010]:

在这里插入图片描述

具体做法

1、导入所需的模块:

在这里插入图片描述
2、可以从模块 input_data 给出的 TensorFlow 示例中获取 MNIST 的输入数据。该 one_hot 标志设置为真,以使用标签的 one_hot 编码。这产生了两个张量,大小为 [55000,784] 的 mnist.train.images 和大小为 [55000,10] 的 mnist.train.labels。mnist.train.images 的每项都是一个范围介于 0 到 1 的像素强度:

在这里插入图片描述
3、在tensorflow图中为训练数据集的输入X和标签y创建占位符

在这里插入图片描述
4、创建学习变量,权重和偏置

在这里插入图片描述
5、创建逻辑回归模型,Tensorflow OP给出了name_scope(“wx_b”)

在这里插入图片描述
6、训练时添加summary来操作收集数据, 使用直方图以便看到权重和偏置随着时间相对于彼此的变化情况,可以通过TensorBoard Histogtam 选项看到

在这里插入图片描述
7、定义交叉熵(cross-entropy)和损失(loss)函数,并添加 name scope 和 summary 以实现更好的可视化。使用 scalar summary 来获得随时间变化的损失函数。scalar summary 在 Events 选项卡下可见:

在这里插入图片描述
8、采用 TensorFlow GradientDescentOptimizer,学习率为 0.01。为了更好地可视化,定义一个 name_scope:

在这里插入图片描述
9、为变量进行初始化

在这里插入图片描述
10、组合所有的summary操作

在这里插入图片描述
11、现在可以定义会话并将所有的summary存储在定义的文件夹中

在这里插入图片描述
经过 30 个周期,准确率达到了 86.5%;经过 50 个周期,准确率达到了 89.36%;经过 100 个周期,准确率提高到了 90.91 %。

解读分析

这里使用张量tensorBoard – logdir =graphs 运行 TensorBoard。在浏览器中,导航到网址 localhost:6006 查看 TensorBoard。该模型图如下:

在这里插入图片描述
在 Histogram 选项卡下,可以看到权重(weights)和偏置(biases)的直方图:

在这里插入图片描述
权重和偏置如下图所示:

在这里插入图片描述
可以看到,随着时间的推移,偏置和权重都发生了变化。在该示例中,根据 TensorBoard 中的分布可知偏置变化的范围更大。在 Events 选项卡下,可以看到 scalar summary,即本示例中的交叉熵。下图显示交叉熵损失随时间不断减少:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子私房菜

给小强一点爱心呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值