简单的训练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]) # placeholdershape参数是可选的,但有了它,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数据集入门的更多相关文章

  1. RNN入门(一)识别MNIST数据集

    RNN介绍   在读本文之前,读者应该对全连接神经网络(Fully Connected Neural Network, FCNN)和卷积神经网络( Convolutional Neural Netwo ...

  2. Tensorflow MNIST 数据集测试代码入门

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 测试代码已上传至GitH ...

  3. Tensorflow MNIST 数据集測试代码入门

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 測试代码已上传至GitH ...

  4. [转]MNIST机器学习入门

    MNIST机器学习入门 转自:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html?plg_ ...

  5. Tensorflow学习笔记(一):MNIST机器学习入门

    学习深度学习,首先从深度学习的入门MNIST入手.通过这个例子,了解Tensorflow的工作流程和机器学习的基本概念. 一  MNIST数据集 MNIST是入门级的计算机视觉数据集,包含了各种手写数 ...

  6. 使用libsvm对MNIST数据集进行实验

    使用libsvm对MNIST数据集进行实验 在学SVM中的实验环节,老师介绍了libsvm的使用.当时看完之后感觉简单的说不出话来. 1. libsvm介绍 虽然原理要求很高的数学知识等,但是libs ...

  7. 基于MNIST数据集使用TensorFlow训练一个没有隐含层的浅层神经网络

    基础 在参考①中我们详细介绍了没有隐含层的神经网络结构,该神经网络只有输入层和输出层,并且输入层和输出层是通过全连接方式进行连接的.具体结构如下: 我们用此网络结构基于MNIST数据集(参考②)进行训 ...

  8. 使用libsvm对MNIST数据集进行实验---浅显易懂!

    原文:http://blog.csdn.net/arthur503/article/details/19974057 在学SVM中的实验环节,老师介绍了libsvm的使用.当时看完之后感觉简单的说不出 ...

  9. 深入浅出TensorFlow(二):TensorFlow解决MNIST问题入门

    2017年2月16日,Google正式对外发布Google TensorFlow 1.0版本,并保证本次的发布版本API接口完全满足生产环境稳定性要求.这是TensorFlow的一个重要里程碑,标志着 ...

随机推荐

  1. ScrollView在布局中的作用

    ScrollView就是滚动一个View,将View里面的内容滚动起来. 但是由于scroolview只能有一个孩子,因此我们可以在ScrollView中在定义一个布局. 这样的话,我们就会直接滚动整 ...

  2. 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 ...

  3. (4)logging(日志模块)

    日志分成几个常用的级别 debug 10 代表程序调试过程中的信息 info 20 代表普通日志信息,用户的访问等等 warning 30 警告日志,有可能出错,但是目前还没出错的 error 40 ...

  4. QQ在线客服的使用

    <a target="_blank" href="http://wpa.qq.com/msgrd?v=1&uin=2804010556&site=a ...

  5. 几本不错的graphql 电子书

    当前专门讲graphql 的数据不是很多,但是越来越多的graphql 项目的出现以及graphql 自身的 便捷,老外已经有人去写graphql 的设计以及基本使用了. ebooks 地址 http ...

  6. 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 ...

  7. enjoy dollar vs cash dollar

    當 enJoy 卡 客 戶 憑 enJoy 卡 於 enJoy 卡 「 特 約 商 戶 」 簽 賬 消 費 , 累 積 之 enJoy Dollars 及 Cash Dollars 可 在 同 一 交 ...

  8. java关键字,保留字

    Java语言有51个保留关键字,其中const和goto虽然被保留但未被使用.你不能使用保留关键字来命名类.方法或变量. 一.保留关键字 数据类型: Boolean   int   long   sh ...

  9. yii2 笔记(1)

    1.js文件加载顺序问题 在视图中引用js文件的时候,使用到jquery会报错,因为自定义的js文件在jquery之前被引入了. 由于jquery,bootstrap是在AppAsset中全局引入的, ...

  10. PHP查找中文字符的解决方案

    在PHP中查找中文字符,有两种方案.1.中文字符是gbk(gb2312)有两种解决方法第一种:将PHP保存为ASCII编码,然后使用strpos查找,如:strpos($curl_res, ‘哈哈’) ...