TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。Tensorflow自推出以来,广泛应用于图像识别、语音识别、自然语言处理。
Tensorflow系统架构自底向上可分为设备层和网络层、数据操作层、图计算层、API层、应用层等。如下图所示:
1)将图的定义和图的运行完全分开。 Tensorflow采用的是符号式编程,涉及到很多的嵌入和优化,理解和调试较为复杂,但运行速度有所提升。
符号式计算一般先是定义各种变量,然后建立一个数据流图,在数据流图中规定各个变量直接的计算关系,最后需要对数据流图进行编译,但只有把需要运算的输入放进去之后,才能在整个模型中形成数据流,从而形成输出值。
2)Tensorflow中涉及的运算都要放在图中,而图的运行只发生在会话(session)中。 开启会话后,就可以用数据去填充节点了,会话关闭后,就不能进行计算了。下面是Tensorflow的一个简单案例,包含创建图、创建会话、计算、关闭会话等流程。
登录后复制
# -*- coding: utf-8 -*-
"""
Created on Tue May 30 21:58:45 2017
@author: zch
"""
import tensorflow as tf
#创建图
a = tf.constant([1.0,2.0])
b = tf.constant([3.0,4.0])
c = a * b
#创建会话
sess = tf.Session()
#执行矩阵计算
print(sess.run(c))
#关闭会话
sess.close()
Tensorflow是用数据流图来做计算的,因此我们需要先创建一个数据流图,典型的数据流图如下图所示:
Tensorflow的数据流图是由节点(node)和边(edge)组成的有向无环图(directed acyline graph,DAG)。其中,Tensor(张量)代表数据流图中的边,Flow(流动)代表数据流图中节点的操作。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删