本文是在阅读官方文档后的一些我的理解。html
官方文档地址:https://www.tensorflow.org/versions/r0.12/get_started/basic_usage.html#basic-usagenode
Nodes in the graph are called ops (short for operations).
An op takes zero or more Tensors, performs some computation, and produces zero or more Tensors.python
类比:一个神经元有多个输入,一个或者多个输出。这里的OP能够看做神经元,tensor能够看做输入的数据。数组
In TensorFlow terminology, a Tensor is a typed multi-dimensional array.
For example, you can represent a mini-batch of images as a 4-D array of floating point numbers with dimensions [batch, height, width,channels].网络
tensor是一个数组,每一个数组元素是多维的,其实就是一个矩阵。session
TensorFlow程序一般被组织成一个构建阶段和一个执行阶段。在构建阶段,op 的执行步骤被描述成一个图。在执行阶段,使用会话执行执行图中的op。fetch
1.构建图从建立op开始。有些op的建立是不须要input的,好比Constant。这样的op被成为源op(source op)。
2.在python中op对象是由op构造器(ops constructors)建立的。op构造器建立一个op对象时能够传递一个源op做为待构造op对象的输入。
3.op对象被op构造器建立后是做为一个node加入到graph中的。TensorFlow Python 库有一个默认图 (default graph), op 构造器能够为其增长节点。这个默认图对许多程序来讲已经足够用了。spa
总结:由于graph是由op对象组成的,因此构建图的过程其实就是建立op对象的过程,以及若是将这些个op对象链接起来(好比某个op对象做为另外某个op对象的输入)的过程。orm
1.由于graph须要在session中启动。因此为了启动一个graph,第一步就是建立session对象。
2.sessoin对象建立的时候若是不制定graph,则使用默认图(default graph)。htm
变量用于维护图执行过程当中的状态信息。
一般会将一个统计模型中的参数表示为一组变量。 例如, 你能够将一个神经网络的权重做为一个tensor存储在某个变量中。在训练过程当中, 经过重复运行训练图,更新这个 tensor。
能够为任意的op赋值或者从其中获取数据。
tensor存储在Constants或者Variables。就像数据能够放在常量和变量中同样。放在变量中的数据是能够修改的,放在常量中的数据是不能够修改的。
常量op也算是op吧,只是比较简单而已。