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 是一个离散的值.我们会使用逻辑回归算法来解决分类问题. 之 ...
随机推荐
- 【MRR】转-MySQL 的 MRR 优化
MRR,全称「Multi-Range Read Optimization」. 简单说:MRR 通过把「随机磁盘读」,转化为「顺序磁盘读」,从而提高了索引查询的性能. 至于: 为什么要把随机读转化为顺序 ...
- 【转】【linux系统】nacos + confd配置nginx
为什么要支持confd,老的应用配置管理模式是启动时读取配置文件,然后重新读取配置文件需要应用重启.一般的配置管理系统都是代码侵入性的,应用接入配置管理系统都需要使用对应的SDK来查询和监听数据的变更 ...
- 路由器逆向分析------在QEMU MIPS虚拟机上运行MIPS程序(ssh方式)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69652258 在QEMU MIPS虚拟机上运行MIPS程序--SSH方式 有关在u ...
- JWT(Json Web Token)认证
目录 JWT(Json Web Token) JWT的数据结构 JWT的用法 JWT验证流程
- Ubuntu Linux DNS服务器 BIND9配置文件命令介绍
BIND9配置方法 转载▼ 配置语法 named.conf acl 定义访问控制列表 controls 定义rndc命令使用的控制通道,若省略,则只允许经过rndc.key认证的127.0.0 ...
- VMware-viclient-all
VMware-viclient-all https://my.vmware.com/web/vmware/details?productId=491&downloadGroup=ESXI60U ...
- 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛总结
1003 Express Mail Taking 题意:有n个柜子(编号1-n),m封信,k号位置有钥匙,现在需要取信封,并且每取一次信封都要从k号位置进行领取一次钥匙,再去有信封的位置领取信封,问最 ...
- C++中使用sort对常见容器排序
本文主要解决以下问题 STL中sort的使用方法 使用sort对vector的排序 使用sort对map排序 使用sort对list排序 STL中sort的使用方法 C++ STL 标准库中的 sor ...
- 3D教育类小图标_三维立体学习类icon图标素材
3D教育类小图标_三维立体学习类icon图标素材
- [刷题] PTA 6-10 阶乘计算升级版
要求: 实现一个打印非负整数阶乘的函数 N是用户传入的参数,其值不超过1000.如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印"Invalid input" 1 # ...