为了使用TensorFlow,你需要知道TensorFlow如何:
- 将计算表示为图
- 在Sessions的上下文中运算图
- 将数据表示为张量(tensor)
- 使用Variable保存状态
- 使用feeds和fetches来在任意操作中获取和设置数据
概述
TensorFlow是一个你能够将计算表示为图的编程系统。在图中的节点称为ops(operations的缩写)。一个op使用零个或者多个张量(Tensors)。一个张量是一个具有类型的多维数组。例如,你能够将一个小批次的图像表示为4维浮点数数组,维度分别为[batch, height, width, channels]。
一个TensorFlow图是对于计算的描述。为了计算一些事物,一张图必须在一个会话(Sessions)中启动。一个会话将图中的操作放入到设备(Devices)中,例如CPU或者GPU,并且提供方法来运行它们。这些方法必须返回操作产生的张量,张量的形式为Python中的numpy ndarray对象和C以及C++中的tensorflow::Tensor实例。
计算图
TensorFlow程序通常被构造为构建一张图的构造阶段以及使用会话来运行图中操作的运行阶段。
例如,在构造阶段通常创建一张图来代表和训练一个神经网络。然后在运行阶段不断运行图中的一系列训练操作。
TensorFlow能够在C,C++,Python编程中被使用。使用Python库来构建图更加容易,因为其提供了许多在C和C++库中间没有的很有帮助的函数。
会话库对于这三种语言有着等效的功能。
构建图
为了构建图,从不需要任何输入的操作(源操作)开始,例如Constant,然后传递这些操作的输出到其它的操作来进行运算。
在Pyhton库中的操作构造函数返回代表构造后的操作的输出的对象。你可以传递这些对象给其它的操作构造函数来作为输入。
TensorFlow的Python库有一个默认的图,在图中可以使用ops的构造函数添加节点。默认的图对于很多应用都有效。查看Graph类的文档来了解如何显示管理多个图。
import tensorflow as tf
# Create a Constant op that produces a 1x2 matrix. The op is
# added as a node to the default graph.
#
# The value returned by the constructor represents the output
# of the Constant op.
matrix1 = tf.constant([[3., 3. ]])
# Create another Constant that produces a 2x1 matrix.
matrix2 = tf.constant([[ 2.], [2. ]])
# Create a Matmul op that takes ‘matrix1’ and ‘matrix2’ as inputs.
# The returned value, ‘product’, represents the result of the matrix multiplication.
product = tf.matmul(m