TensorFlow中图(graphs)概念
TensorFlow是一个以图(grapgs)来表示计算的编程系统,图中的节点也被成为op(op-eration的缩写)。一个op获得零活多个张量(tensors)执行计算,产生零或多个张量。
TensorFlow 的图是一种对计算的抽象描述。在计算开始前, 图必须在 会话 (Session()) 中被启动. 会话将图的 op 分发到如 CPU 或 GPU 之类的 设备 (Devices()) 上, 同时提供执行 op 的方法。这些方法执行后, 将产生的张量 (tensor) 返回。在 Python 语言中, 将返回numpy的ndarray 对象;
The computation graph | 计算图
通常,TensorFlow 编程可按两个阶段组织起来: 构建阶段和执行阶段; 前者用于组织计算图,而后者利session 中执行计算图中的 op 操作。
构建计算图
刚开始基于 op 建立图的时候一般不需要任何的输入源 (source op),例如输入常量(Constance),再将它们传递给其它 op 执行运算。TensorFlow Python库有一个可被op构造函数加入计算结点的默认图(default graph)。
对大多数应用来说,这个默认图已经足够用了。
import tensorflow as tf
#创建常量
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
#计算
product = tf.matmul(matrix1, matrix2)
默认图中现在有三个节点,两个constant()op,一个matmul()op。为了真正进行矩阵乘法运算,得到乘法结果,必须在一个会话中载入这个图。
#创建会话
sess = tf.Session()
result = sess.run(product)
print(result)
#关闭会话,释放资源
sess.close()
会话在完成后必须关闭以释放资源。你也可以用"with"句块开始一个会话,该会话将在"with"句块结束时自动关闭。
with tf.Session() as sess:
result = sess.run(product)
print(result)