简单的训练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. nginx keepalive 高可用

    https://blog.csdn.net/u012410733/article/details/57078407 在网络中机器不可避免的出现单点故障,当我们使用nginx进行反向代理的时候如果出现了 ...

  2. [LeetCode&Python] Problem 590. N-ary Tree Postorder Traversal

    Given an n-ary tree, return the postorder traversal of its nodes' values. For example, given a 3-ary ...

  3. python海龟绘图

    最近学了python,看了几本书之后,才明白python的强大,python是一种解释型的语言,即每写一行程序就执行一行. 而且在科学计算方面,处理的能力特别的方便. 比如python中的字典dict ...

  4. BZOJ4710: [Jsoi2011]分特产【组合数学+容斥】

    Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望 ...

  5. POJ 2367:Genealogical tree(拓扑排序模板)

    Genealogical tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7285   Accepted: 4704 ...

  6. CTF之常见的两种关于word的信息隐藏技术

    一.利用word本身自带的文字隐藏功能 1.在word中输入文字 2.选中文字,单击右键,选择字体选项 3.单击字体选项后,单击隐藏,确定 查找隐藏信息 1.单击左上角WPS文字后,选择选项按钮单击 ...

  7. test20180922 古代龙人的谜题

    题意 问题描述 Mark Douglas是一名调查员.他接受了「调查古代龙人」的任务.经过千辛万苦,Mark终于找到了一位古代龙人.Mark找到他时,他正在摆弄一些秘药,其中一些药丸由于是从很久以前流 ...

  8. FastAdmin CMS 插件下载

    FastAdmin CMS 插件下载 CMS内容管理系统插件(含小程序) 自定义内容模型.自定义单页.自定义表单.自定义会员发布.付费阅读.小程序等 提供全部前后端源代码和小程序源代码 功能特性 基于 ...

  9. POJ2584 T-Shirt Gumbo——网络最大流模板

    题目:http://poj.org/problem?id=2584 像模板一样的简单题.继续使用 & 的当前弧优化和神奇的构造函数. #include<iostream> #inc ...

  10. nginx反向代理解决跨域问题

    跨域:浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 . 下表格为前后端分离的域名,技术信息:   域名 服务器 使用技术 前端 http://b.yynf.com ...