MNIST数据集入门
简单的训练MNIST数据集 (0-9的数字图片)
详细地址(包括下载地址):http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
import input_data # 需要下载数据集(包括了input_data)
# 加载数据集
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # minist用来获取批处理数据 # x: 任意数量的MNIST图像,每一张图展平成784维的向量。我们用2维的浮点数张量来表示这些
# 图,这个张量的形状是[None,784 ]。(这里的None表示此张量的第一个维度可以是任何
# 长度 batch取批量的大小 x图片的数量。)
x = tf.placeholder("float", shap=[None, 784]) #placeholder的shape参数是可选的,但有了它,TensorFlow能够自动捕捉因数据维度不一致导致的错误。 # 图片设为“xs”,把这些标签设为“ys”
# softmax模型可以用来给不同的对象分配概率 W = tf.Variable(tf.zeros([784, 10])) # 28*28, 0-9
b = tf.Variable(tf.zeros([10])) # 0-9 # 构建模型
y = tf.nn.softmax(tf.matmul(x, W) + b) # y概率 # 训练构建的模型
# 先定义指标评估模型好坏(指标称为 成本cost,损失loss。小化这个指标)
# 成本函数“交叉熵”cross-entropy。
# 计算交叉熵 需要添加新的占位符 y_: 实际分布one-hot [1,0,0,0,0,0,0,0,0,0] ??
y_ = tf.placeholder("float", [None, 10])
# 交叉熵
cross_entropy = -tf.reduce_sum(y_ * tf.log(y)) # tf的优化算法,根据交叉熵降低指标(成本,损失)
# 梯度算法,0.01的学习率不断地最小化交叉熵(指标)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) # 运行模型前,初始化创建的变量
init = tf.initialize_all_variables()
# 启动init
sess = tf.Session()
sess.run(init) # 开始训练模型1000次
for i in range(1000):
# 获得100个批处理数据点
batch_xs, batch_ys = mnist.train.next_batch(100)
# 进行梯度算法
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) # 评估模型tf.argmax(x, 1)
# 给出某个tensor对象在某一维上的其数据最大值所在的索引值。由于标签向量是由0,1组
# 成,因此最大值1所在的索引位置就是类别标签,比如tf.argmax(y,1)返回的是模型对于
# 任一输入x预测到的标签值,而 tf.argmax(y_,1) 代表正确的标签,我们可以用
# tf.equal 来检测我们的预测是否真实标签匹配(索引位置一样表示匹配)。
current_prediction = tf.equal(tf.argmax(y, 1), tf.arg_max(y_, 1))
# 其结果为bool值 [True, False, ...]
# 为了确定正确预测项的比例,我们可以把布尔值转换成浮点数,然后取平均值
accuracy = tf.reduce_mean(tf.cast(current_prediction, "float")) # 运行accuracy
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) # 结果约为 91% 左右
MNIST数据集入门的更多相关文章
- RNN入门(一)识别MNIST数据集
RNN介绍 在读本文之前,读者应该对全连接神经网络(Fully Connected Neural Network, FCNN)和卷积神经网络( Convolutional Neural Netwo ...
- Tensorflow MNIST 数据集测试代码入门
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 测试代码已上传至GitH ...
- Tensorflow MNIST 数据集測试代码入门
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 測试代码已上传至GitH ...
- [转]MNIST机器学习入门
MNIST机器学习入门 转自:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html?plg_ ...
- Tensorflow学习笔记(一):MNIST机器学习入门
学习深度学习,首先从深度学习的入门MNIST入手.通过这个例子,了解Tensorflow的工作流程和机器学习的基本概念. 一 MNIST数据集 MNIST是入门级的计算机视觉数据集,包含了各种手写数 ...
- 使用libsvm对MNIST数据集进行实验
使用libsvm对MNIST数据集进行实验 在学SVM中的实验环节,老师介绍了libsvm的使用.当时看完之后感觉简单的说不出话来. 1. libsvm介绍 虽然原理要求很高的数学知识等,但是libs ...
- 基于MNIST数据集使用TensorFlow训练一个没有隐含层的浅层神经网络
基础 在参考①中我们详细介绍了没有隐含层的神经网络结构,该神经网络只有输入层和输出层,并且输入层和输出层是通过全连接方式进行连接的.具体结构如下: 我们用此网络结构基于MNIST数据集(参考②)进行训 ...
- 使用libsvm对MNIST数据集进行实验---浅显易懂!
原文:http://blog.csdn.net/arthur503/article/details/19974057 在学SVM中的实验环节,老师介绍了libsvm的使用.当时看完之后感觉简单的说不出 ...
- 深入浅出TensorFlow(二):TensorFlow解决MNIST问题入门
2017年2月16日,Google正式对外发布Google TensorFlow 1.0版本,并保证本次的发布版本API接口完全满足生产环境稳定性要求.这是TensorFlow的一个重要里程碑,标志着 ...
随机推荐
- ScrollView在布局中的作用
ScrollView就是滚动一个View,将View里面的内容滚动起来. 但是由于scroolview只能有一个孩子,因此我们可以在ScrollView中在定义一个布局. 这样的话,我们就会直接滚动整 ...
- ZOJ 3432 Find the Lost Sock (异或的运用)
Alice bought a lot of pairs of socks yesterday. But when she went home, she found that she has lost ...
- (4)logging(日志模块)
日志分成几个常用的级别 debug 10 代表程序调试过程中的信息 info 20 代表普通日志信息,用户的访问等等 warning 30 警告日志,有可能出错,但是目前还没出错的 error 40 ...
- QQ在线客服的使用
<a target="_blank" href="http://wpa.qq.com/msgrd?v=1&uin=2804010556&site=a ...
- 几本不错的graphql 电子书
当前专门讲graphql 的数据不是很多,但是越来越多的graphql 项目的出现以及graphql 自身的 便捷,老外已经有人去写graphql 的设计以及基本使用了. ebooks 地址 http ...
- Json.NET Updates: Merge, Dependency Injection, F# and JSONPath Support
Json.NET 6.0 received 4 releases this year, the latest last week. Over these releases, several new f ...
- enjoy dollar vs cash dollar
當 enJoy 卡 客 戶 憑 enJoy 卡 於 enJoy 卡 「 特 約 商 戶 」 簽 賬 消 費 , 累 積 之 enJoy Dollars 及 Cash Dollars 可 在 同 一 交 ...
- java关键字,保留字
Java语言有51个保留关键字,其中const和goto虽然被保留但未被使用.你不能使用保留关键字来命名类.方法或变量. 一.保留关键字 数据类型: Boolean int long sh ...
- yii2 笔记(1)
1.js文件加载顺序问题 在视图中引用js文件的时候,使用到jquery会报错,因为自定义的js文件在jquery之前被引入了. 由于jquery,bootstrap是在AppAsset中全局引入的, ...
- PHP查找中文字符的解决方案
在PHP中查找中文字符,有两种方案.1.中文字符是gbk(gb2312)有两种解决方法第一种:将PHP保存为ASCII编码,然后使用strpos查找,如:strpos($curl_res, ‘哈哈’) ...