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的一个重要里程碑,标志着 ...
随机推荐
- 代理模式及Spring AOP (二)
一.Spring AOP 1.1 Spring AOP 底层还是用的动态代理.如果目标对象所对应的类有接口,spring就用jdk生成代理对象: 如果目标对象所对应的类没有接口,spring就用C ...
- [UE4]虚幻4的智能指针
虚幻自己实现了一套智能指针系统,为了跨平台. 指针: 占用8个字节,4个字节的Object指针,4字节的引用计数控制器的指针, 引用计数控制器需要12字节, 一个C++的Object指针4字节,一个共 ...
- 【知识笔记】ASP.NET报错问题
一.前端asp.net在远程部署到IIS时报错:Web 部署任务失败,在远程计算机上处理请求时出错 服务器在处理请求时遇到问题.请与服务器管理员联系以了解详细信息((2017/6/16 16:22:4 ...
- dup and dup2的剖析
转:http://www.cnblogs.com/sdphome/archive/2011/04/30/2033381.html dup和dup2都可用来复制一个现存的文件描写叙述符,使两个文件描写叙 ...
- 在Win7下新建库并修改图标
win7中在库中添加桌面方法详解 1.在空白处,鼠标右键选择新建——库. 2.命名为桌面,然后选择桌面. 3.鼠标右键选择属性. 4.点击包括文件夹. 5.选择桌面,点击包括文件夹按钮. 6.点击确定 ...
- Oracle 基础知识入门
前记: 近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的. 这里简单说点基础知识,希望后面补上更多的关于ORacle知识 ...
- tomcat源码阅读之安全机制
一.领域(Realm): 1.Principal接口代表角色信息,包含了三个成员:用户名.密码.role列表(以逗号分隔),对应了tomcat-users.xml文件中一行user信息: Generi ...
- 【转】每天一个linux命令(31): /etc/group文件详解
原文网址:http://www.cnblogs.com/peida/archive/2012/12/05/2802419.html Linux /etc/group文件与/etc/passwd和/et ...
- AngularJs $scope 里面的$apply 方法和$watch方法
Angular $scope 里面的$apply 方法 Scope提供$apply方法传播Model变化 <!DOCTYPE html> <html> <head> ...
- golang init函数
init函数有一下几点特性: init函数在main执行之前,自动被调用执行的,不能显示调用 每个包的init函数在包被引用时,自动被调用 每个包可以有多个init函数 同一个文件中可定义多个init ...