13 Tensorflow机制(翻译)

代码: tensorflow/examples/tutorials/mnist/

本文的目的是来展示如何使用Tensorflow训练和评估手写数字识别问题。本文的观众是那些对使用Tensorflow进行机器学习感兴趣的人。

本文的目的并不是讲解机器学习。

请确认您已经安装了Tensorflow。

    教程文件

文件 作用
mnist.py 用来创建一个完全连接的MNIST模型。
fully_connected_feed.py 使用下载的数据集训练模型。

运行fully_connected_feed.py文件开始训练。

python fully_connected_feed.py

    准备数据

MNIST是机器学习的一个经典问题。这个问题是识别28*28像素图片上的数字,从0到9。

更多信息,请参考Yann LeCun‘s MNIST page 或者 Chris Olah‘s visualizations of MNIST

    数据下载

在run_training()方法之前,input_data.read_data_sets()方法可以让数据下载到本机训练文件夹,解压数据并返回一个DataSet实例。

data_sets = input_data.read_data_sets(FLAGS.train_dir, FLAGS.fake_data)

注意:fake_data是用来进行单元测试的,读者可以忽略。

数据集 作用
data_sets.train 55000图片和标签,用来训练。
data_sets.validation 5000图片和标签,用来在迭代中校验模型准确度。
data_sets.test 10000图片和标签,用来测试训练模型准确度。

    输入和占位符

placeholder_inputs()函数创建两个tf.placeholder,用来定义输入的形状,包括fetch_size。

images_placeholder = tf.placeholder(tf.float32, shape=(batch_size, mnist.IMAGE_PIXELS))
labels_placeholder = tf.placeholder(tf.int32, shape=(batch_size))

在训练循环中,图片和标签数据集会被切分成batch_size大小,跟占位符匹配,然后通过feed_dict参数传递到sess.run()方法中。

    创建图

创建占位符后,mnist.py文件中会通过三个步骤来创建图:inference(), loss(), 和training()。

  1. inference() - 运行网络来进行预测。
  2. loss() - 用来计算损失值。
  3. training() - 计算梯度。

    inference层

inference()函数创建图,返回预测结果。

它把图片占位符当作输入,并在上面构建一对完全连接的层,使用ReLU激活后,连接一个10个节点的线性层。

每一层都位于tf.name_scope声明的命名空间中。

with tf.name_scope(‘hidden1‘):

在该命名空间中,权重和偏置会产生tf.Variable实例,并具有所需的形状。

weights = tf.Variable(tf.truncated_normal([IMAGE_PIXELS, hidden1_units], stddev=1.0 / math.sqrt(float(IMAGE_PIXELS))), name=‘weights‘)
biases = tf.Variable(tf.zeros([hidden1_units]), name=‘biases‘)

待续...

原文:《TensorFlow Mechanics 101》:https://www.tensorflow.org/get_started/mnist/mechanics

时间: 2024-10-13 10:58:58

13 Tensorflow机制(翻译)的相关文章

rsync工作机制(翻译)

本篇为rsync官方推荐文章How Rsync Works的翻译,主要内容是Rsync术语说明和简单版的rsync工作原理.本篇没有通篇都进行翻译,前言直接跳过了,但为了文章的完整性,前言部分的原文还是保留了. How Rsync WorksA Practical Overview Foreword The original Rsync technical report and Andrew Tridgell's Phd thesis (pdf) Are both excellent docum

13 Tensorflow API主要功能

要想使用Tensorflow API,首先要知道它能干什么.Tensorflow具有Python.C++.Java.Go等多种语言API,其中Python的API是最简单和好用的. Asserts and boolean checks    Building Graphs    Constants, Sequences, and Random Values    Control Flow    Data IO (Python functions)    Higher Order Function

13.容错机制

知识点: 容错机制 一.容错机制:master选举,replica容错,数据恢复 假设有9个shard(3个primary+6个replica), 3个node, 此时如果有一个master node宕机,容错机制如下: 就会有一个primary丢失,在短时间内,status 是red,ES会自动选取另一个node成为新的master node. 新产生的master shard 会将丢失的primay shard 的某一个replica shard 提升为primary shard,此时clu

【Dart学习】-- Dart之消息循环机制[翻译]

概述 异步任务在Dart中随处可见,例如许多库的方法调用都会返回Future对象来实现异步处理,我们也可以注册Handler来响应一些事件,如:鼠标点击事件,I/O流结束和定时器到期. 这篇文章主要介绍了Dart中与异步任务相关的消息循环机制,阅读完这篇文章后相信你可写出更赞的异步执行代码.你也能学习到如何调度Future任务并且预测他们的执行顺序. 在阅读这篇文章之前,你最好先要了解一下基本的Future用法. 基本概念 如果你写过一些关于UI的代码,你就应该熟悉消息循环和消息队列.有了他们才

深入浅出 Java Concurrency (13): 锁机制 part 8 读写锁 (ReentrantReadWriteLock) (1)[转]

从这一节开始介绍锁里面的最后一个工具:读写锁(ReadWriteLock). ReentrantLock 实现了标准的互斥操作,也就是一次只能有一个线程持有锁,也即所谓独占锁的概念.前面的章节中一直在强调这个特点.显然这个特点在一定程度上面减低了吞吐量,实际上独占锁是一种保守的锁策略,在这种情况下任何“读/读”,“写/读”,“写/写”操作都不能同时发生.但是同样需要强调的一个概念是,锁是有一定的开销的,当并发比较大的时候,锁的开销就比较客观了.所以如果可能的话就尽量少用锁,非要用锁的话就尝试看能

深入浅出 Java Concurrency (13): 锁机制 part 8 读写锁 (ReentrantReadWriteLock) (1)

从这一节开始介绍锁里面的最后一个工具:读写锁(ReadWriteLock). ReentrantLock 实现了标准的互斥操作,也就是一次只能有一个线程持有锁,也即所谓独占锁的概念.前面的章节中一直在强调这个特点.显然这个特点在一定程度上面减低了吞吐量,实际上独占锁是一种保守的锁策略,在这种情况下任何"读/读","写/读","写/写"操作都不能同时发生.但是同样需要强调的一个概念是,锁是有一定的开销的,当并发比较大的时候,锁的开销就比较客观了.所

【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

[导读]TensorFlow 在 2015 年年底一出现就受到了极大的关注,经过一年多的发展,已经成为了在机器学习.深度学习项目中最受欢迎的框架之一.自发布以来,TensorFlow 不断在完善并增加新功能,直到在这次大会上发布了稳定版本的 TensorFlow V1.0.这次是谷歌第一次举办的TensorFlow开发者和爱好者大会,我们从主题演讲.有趣应用.技术生态.移动端和嵌入式应用多方面总结这次大会上的Submit,希望能对TensorFlow开发者有所帮助. TensorFlow:面向大

【转】关于HTTP中文翻译的讨论

http://www.ituring.com.cn/article/1817 讨论参与者共16位: 图灵谢工 杨博 陈睿杰 贾洪峰 李锟 丁雪丰 郭义 梁涛 吴玺喆 邓聪 胡金埔 臧秀涛 张伸 图钉派_007_LL 图钉派_111_DP 图钉派-34徐浩然 辩论主题:HTTP中的“transfer”是否应该翻译为“传输”? 主持人:图灵谢工 正方:贾洪峰.郭义.梁涛 正方观点:为了照顾读者的阅读习惯,还是应该继续沿用“超文本传输协议”这个称呼. 反方:陈睿杰.李锟.丁雪峰 反方观点:HTTP既然

【翻译】ASP.NET MVC 5属性路由

原文链接:http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx#why-attribute-routing 最近在学习MVC相关的东西,今天刚好到msdn上看到了这样的一片文章,感觉不错,于是决定将它翻译出来和博友们一起分享下.我第一次发表文章,有不对的地方非常欢迎指出. —— 写在前面 废话不多说了,咱们开始吧 路由是ASP.NET MVC 怎样去用一个URI去匹配一个