TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。
一、TensorFlow系统架构
TensorFlow的系统架构自底向上分为设备层和网络层、数据操作层、图计算层、API层、应用层,其中设备层和网络层、数据操作层、图计算层是TensorFlow的核心层。如下图所示:
图 1.1 TensorFlow架构图
二、设计理念
TensorFlow的设计理念主要体现在两个方面:
第一、将图的定义和图的运行完全分开。
第二、TensorFlow中涉及的运算都要放在图中,而图的运行只是发生在会话(session)中。开启会话后,就可以用数据去填充节点,进行运算;关闭会话后,就不能进行计算了。因此会话提供了操作运行和Tensor求值的环境。例如具体代码:
import tensorflow as tf
#创建图
a=tf.constant([1.0,2.0])
b=tf.constant([1.0,2.0])
c = a * b
#创建会话
sess=tf.Session()
#计算c
print(sess.run(c)) #进行矩阵乘法,输出[3.0,8.0]
sess.close()