码迷,mamicode.com
首页 > 其他好文 > 详细

TensorFlow 101 | 原理与概念

时间:2017-08-05 00:10:53      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:space   参考   mil   产生   kvo   风起云   数据   eal   结果   

技术分享

“控制复杂性是计算机编程的本质”

TensorFlow是当今主流的深度学习框架之一,开源社区也在不断推动着它的发展中。网上(包括官方网站)有大量的教程可供参考,而本系列更多尝试从底层和应用角度对TensorFlow框架进行下梳理,首先是原理与概念介绍。

使用TensorFlow框架实现神经网络计算的基本原理是将计算的定义与执行相互分离,其中计算通过数据流图定义,会话执行数据流图上的操作。数据流图定义了整个计算过程,具有节省计算资源、便于自动微分计算、以及CPU/GPU并行、可视化直观等优势。

数据流图中,常量、操作或变量定义为节点,Tensor定义为边,即MxN维矩阵。

其中,常量通过tf.constant()定义,即在图定义过程中确定不变的量,类似于Numpy中的使用方式,包括定义给定值的矩阵、序列,或取随机数等。

操作包括基本的数学计算函数、矩阵操作、矩阵计算、赋值、神经网络激励函数、队列或控制流操作等。

变量通过tf.Variable()定义,与常量不同的是,变量值是在运行过程中动态确定的,同时必须在使用过程中初始化。

定义好的数据流图通过会话类管理运行计算过程。首先,创建一个会话对象tf.Session(),对变量节点进行赋值。会话在运行过程中会检查整个数据流图,即为得到变量的结果需计算哪些前置节点,没有依赖关系的节点将不参与计算。

值得注意的是,最好不要建多个数据流图,因为需要多个会话对象管理其运行过程,它们会共用默认的资源而可能产生冲突,尽量在一张图中使用不连接的子图来替代。

TensorBoard可用于数据流图的可视化,这在构建复杂模型时会非常有用,举个例子:

import tensorflow as tf

a = tf.constant(2, name="a")
b = tf.constant(3, name="b")
x = tf.add(a,b)
writer = tf.summary.FileWriter("/graph", sess.graph)
with tf.Session() as sess:
    print sess.run(x)

在命令行运行后,浏览器访问http://localhost:6000可视化结果,感兴趣的朋友动手试试看吧~

python xxx.py
tensorboard --logdir="/graph" --port 6000

数据科学武林风起云涌,
随数据小虾米共闯江湖~
技术分享

?

TensorFlow 101 | 原理与概念

标签:space   参考   mil   产生   kvo   风起云   数据   eal   结果   

原文地址:http://www.cnblogs.com/datashrimp/p/7287430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!