TensorFlow 概述
TensorFlow
是一个编程系统, 使用图(graph)
来表示计算任务. 图中的节点被称之为 op
(operation
的缩写). 一个 op
获得 0 个或多个 Tensor
, 执行计算, 产生 0 个或多个 Tensor
. 每个 Tensor
是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels]
。
一个 TensorFlow
图描述了计算的过程. 为了进行计算, 图必须在 会话 里被启动. 会话 将图的 op
分发到诸如 CPU
或 GPU
之类的 设备 上, 同时提供执行 op
的方法. 这些方法执行后, 将产生的 tensor
返回. 在 Python
语言中, 返回的 tensor
是 numpy ndarray
对象; 在 C
和 C++
语言中, 返回的 tensor
是 tensorflow::Tensor
实例。
TensorFlow 计算模型——计算图
计算图的概念
- Tensor
张量,可以理解为大小可动态调整的多维数组。 - Flow
“流”,数据流向,表示Tensor
(张量)的流动路径和方向,即图(graph)中的线。 - Graph
计算图,表示TensorFlow
编程系统中的计算任务,描述了计算的过程,包括结点(nodes)和线(edges)。计算图中的每一个结点都表示一个计算,是张量(Tensor
)输入或者输出的地方,结点之间的线表示了计算之间的关系即一个计算(结点)的输入是另一个计算(结点)的输出。
计算图的应用
TensorFlow
程序通常被组织成一个构建阶段和一个执行阶段。在构建阶段,在图中构建计算结点即 op
.在执行阶段, 使用会话执行执行图中的 op
。
import tensorflow as tf
a = tf.constant([1.0,2.0], name = "a")
b = tf.constant([2.0,3.0], name = "b")
result = a + b
系统会自动维护一个默认的计算图(default graph)通过 tf.get_default_garph()
函数可以获取当前的默认的计算图。通过 graph
函数可以查看张量所属的计算图,例如 a.graph
。所以下面这个操作的输出值为 True
print(a.graph is tf.get_default_garph())
TensorFlow
还支持通过 tf.Graph()
函数来生成新的计算图,不同计算图上的张量和运算都不会共享。 TensorFlow
使用计算图隔离张量和计算,还提供了管理张量和计算的机制。在不同的计算图上定义和使用张量:
import tensorflow as tf
g1 = tf.Graph()
with g1.as_default(</