TensorFlow 学习(基本概念)

  • TensorFlow 的名字中已经说明了它最重要的两个念——Tensor
    和 Flow。Tensor 就是张量。在 TensorFlow 中,所有的数据都通过张量的形式来表示。从功能的角度上看,张量可以被简单理解为多维数组。但张量在 TensorFlow 中的实现并不是直接采用数组的形式,它只是对TensorFlow 中运算结果的引用。在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。看下面运行的例子:第一个print 输出的只是一个引用而不是计算结果。
    TensorFlow 学习(基本概念)
  • 一个张量中主要保存了三个属性:名字(name)、维度(shape)和类型(type)。张量的第一个属性名字不仅是一个张量的唯一标识符,它同样也给出了这个张量是如何计算出来的。张量的命名是通过“node:src_output”的形式来给出。其中 node 为计算节点的名称,src_output 表示当前张量来自节点的第几个输出。
    比如张量“add_1”就说明了 result 这个张量是计算节点“add”输出的第二个结果(编号从 0 开始)。张量的第二个属性是张量的维度(shape)。这个属性描述了一个张量的维度信息。比如“shape=(3,) ”说明了张量 result是一个一维数组,这个数组的长度为 3。张量的第三个属性是类型(type),每一个张量会有一个唯一的类型。如果说 TensorFlow 的第一个词 Tensor 表明了它的数据结构,那么Flow 则体现了它的计算模型。Flow 翻译成中文就是“流”,它直观地表达了张量之间通过计算相互转化的过程。
  • TensorFlow 计算图定义完成后,我们需要通过会话(Session)来执行定义好的运算。会话拥有并管理 TensorFlow 程序运行时的所有资源。当所有计算完成之后需要关闭会话来帮助系统回收资源,否则就可能出现资源泄漏的问题。TensorFlow 可以通过 Python 的上下文管理器来使用会话。
    上述代码第二段展示了如何使用这种模式。