TensorFlowMNIST数据集逻辑回归处理
TensorFlow逻辑回归处理MNIST数据集
本节基于回归学习对 MNIST 数据集进行处理,但将添加一些 TensorBoard 总结以便更好地理解 MNIST 数据集。
大部分人已经对 MNIST 数据集很熟悉了,它是机器学习的基础,包含手写数字的图像及其标签来说明它是哪个数字。
对于逻辑回归,对输出 y 使用独热(one-hot)编码。因此,有 10 位表示输出,每位的值为 1 或 0,独热意味着对于每个图片的标签 y,10 位中仅有一位的值为 1,其余的为 0。
因此,对于手写数字 8 的图像,其编码值为 [0000000010]:
具体做法
- 导入所需的模块:
- 可以从模块 input_data 给出的 TensorFlow 示例中获取 MNIST 的输入数据。该 one_hot 标志设置为真,以使用标签的 one_hot 编码。这产生了两个张量,大小为 [55000,784] 的 mnist.train.images 和大小为 [55000,10] 的 mnist.train.labels。mnist.train.images 的每项都是一个范围介于 0 到 1 的像素强度:
- 在 TensorFlow 图中为训练数据集的输入 x 和标签 y 创建占位符:
- 创建学习变量、权重和偏置:
- 创建逻辑回归模型。TensorFlow OP 给出了 name_scope("wx_b"):
- 训练时添加 summary 操作来收集数据。使用直方图以便看到权重和偏置随时间相对于彼此值的变化关系。可以通过 TensorBoard Histogtam 选项卡看到:
- 定义交叉熵(cross-entropy)和损失(loss)函数,并添加 name scope 和 summary 以实现更好的可视化。使用 scalar summary 来获得随时间变化的损失函数。scalar summary
在 Events 选项卡下可见:
- 采用 TensorFlow GradientDescentOptimizer,学习率为
0.01。为了更好地可视化,定义一个 name_scope:
- 为变量进行初始化:
- 组合所有的 summary 操作:
- 现在,可以定义会话并将所有的 summary 存储在定义的文件夹中:
- 经过 30 个周期,准确率达到了 86.5%;经过 50 个周期,准确率达到了 89.36%;经过 100 个周期,准确率提高到了 90.91 %。
解读分析
这里使用张量
tensorboard--logdir=garphs 运行 TensorBoard。在浏览器中,导航到网址 localhost:6006 查看
TensorBoard。该模型图如下:
在 Histogram 选项卡下,可以看到权重(weights)和偏置(biases)的直方图:
权重和偏置的分布如下:
可以看到,随着时间的推移,偏置和权重都发生了变化。在该示例中,根据 TensorBoard 中的分布可知偏置变化的范围更大。在 Events 选项卡下,可以看到 scalar summary,即本示例中的交叉熵。下图显示交叉熵损失随时间不断减少:
TensorFlowMNIST数据集逻辑回归处理的更多相关文章
- 深度学习原理与框架-Tensorflow基本操作-mnist数据集的逻辑回归 1.tf.matmul(点乘操作) 2.tf.equal(对应位置是否相等) 3.tf.cast(将布尔类型转换为数值类型) 4.tf.argmax(返回最大值的索引) 5.tf.nn.softmax(计算softmax概率值) 6.tf.train.GradientDescentOptimizer(损失值梯度下降器)
1. tf.matmul(X, w) # 进行点乘操作 参数说明:X,w都表示输入的数据, 2.tf.equal(x, y) # 比较两个数据对应位置的数是否相等,返回值为True,或者False 参 ...
- TensorFlow从0到1之TensorFlow逻辑回归处理MNIST数据集(17)
本节基于回归学习对 MNIST 数据集进行处理,但将添加一些 TensorBoard 总结以便更好地理解 MNIST 数据集. MNIST由https://www.tensorflow.org/get ...
- Theano3.3-练习之逻辑回归
是官网上theano的逻辑回归的练习(http://deeplearning.net/tutorial/logreg.html#logreg)的讲解. Classifying MNIST digits ...
- Stanford大学机器学习公开课(三):局部加权回归、最小二乘的概率解释、逻辑回归、感知器算法
(一)局部加权回归 通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting).如下图的左图.而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为 ...
- DeepLearning之路(一)逻辑回归
逻辑回归 1. 总述 逻辑回归来源于回归分析,用来解决分类问题,即预测值变为较少数量的离散值. 2. 基本概念 回归分析(Regression Analysis):存在一堆观测资料,希望获得数据内 ...
- 用Python开始机器学习(7:逻辑回归分类) --好!!
from : http://blog.csdn.net/lsldd/article/details/41551797 在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到 ...
- PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)
主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...
- Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
原文:http://blog.csdn.net/abcjennifer/article/details/7716281 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- 机器学习之逻辑回归(Logistic Regression)
1. Classification 这篇文章我们来讨论分类问题(classification problems),也就是说你想预测的变量 y 是一个离散的值.我们会使用逻辑回归算法来解决分类问题. 之 ...
随机推荐
- 功能:Java8新特性steam流
Java8新特性steam流 一.包装数据类型 @Test public void main22() { List<Integer> list = new ArrayList<Int ...
- hdu3329 二分+搜索
题意: 给你一个岛,然后岛的外侧开始涨水(内侧不涨只有外侧,也就是里面的0永远是0),问最少涨水多少才能把岛分成两个或者两个以上. 思路: 可以二分枚举水的高度(数据不大估计暴 ...
- POJ1722二维spfa+优先队列优化
题意: 给你一个有向图,然后求从起点到终点的最短,但是还有一个限制,就是总花费不能超过k,也就是说每条边上有两个权值,一个是长度,一个是花费,求满足花费的最短长度. 思路: 一开 ...
- UVA11464偶数矩阵
题意: 给你一个n*n的01矩阵,你的你的任务是吧尽量少的0变成1,使得每个元素的上下左右之和均为偶数(如果有的话),比如 0 0 0 0 1 0 1 0 0 ---&g ...
- PowerShell-1.入门及其常用
PowerShell可以理解成是加强版的批处理,但是和批处理完全不同,比如可以调用API等.应用场景平时使用的用户机基本都支持了(出了XP). 常用情节:便捷快速开发,或者是**(因为不存在自己的PE ...
- 《THE LEAN STARTUP》 《精益创业》
书名:<THE LEAN STARTUP> <精益创业> 作者: [美] 埃里克·莱斯 IMVU:(3D人物场景聊天)https://secure.imvu.com 作者是这个 ...
- 【opencv】Java实现的opencv3.x版本后Highhui报错
随笔为博主原创,如需转载,请注明出处. opencv3.x以后Highgui不再使用,用Imgcodecs代替,引入import org.opencv.imgcodecs.Imgcodecs;即可. ...
- killable thread的python实现
python没有为内置的threading.Thread类提供一个kill接口,可以通过使用CPython API向线程抛出一个SystemExit异常来终止线程.如果线程没有被系统调用阻塞(slee ...
- LightningChart JS 3.0 新功能上线
在这次的LC JS更新中,首次将极坐标图引入图表库. 这种全新的图表类型可以通过API轻松地进行样式设置.极坐标可以用作独立图表或在仪表板中使用. 另外,用于 XY图表的对数轴也添加到了这次的更新,L ...
- checked 和 prop() (散列性比较少的)
在<input class="sex1" type="radio" checked>男 checked表示该框会被默认选上 prop()操作的是D ...