迁移后的图片
自 2015 年 11 月发布起,TensorFlow 经历了多次的版本变化,如表所示。
TensorFlow 版本变化
时间 TensorFlow 版本 主要变化
2015 年 12 月
V0.6
TensorFlow 支持 GPU 加速
2016 年 12 月
V0.12
TensorFlow 支持 Windows
2017 年 2 月
V1.0
加入和改进了一些高级 API,包括 Keras
2017 年 11 月
V1.5
增加了动态图机制和用于移动端的轻量级 TensorFlow Lite 版本
2018 年 5 月
V1.6
增加了支持 Cloud TPU、模型和 pipeline 功能
2018 年 6 月
V1.8
增加了 TensorFlow 的分布式训练功能
2019 年 3 月
V2.0 Alpha
使用 Keras 和 Eager Execution 可以轻松建立简单的模型并执行,
通过清除不推荐使用的 API 和减少重复来简化 API
为了让读者更好地理解 TensorFlow,下面从 3 个不同的角度对其进行分析。
(1)TensorFlow 的计算模型为计算图(Graph),TensorFlow 的名字本身由两个单词构成,即 Tensor
和 Flow。Tensor 指的是张量,在 TensorFlow 中,Tensor 可以简单地理解为多维数组,而 Flow 翻译过来是
“流”,表达了张量之间通过计算进行相互转换的含义。在 TensorFlow 中,每一个运算都是一个节点,在整体代
码中,系统会维护一个默认的计算图。
(2)TensorFlow 的数据模型为张量(Tensor),在 TensorFlow 中,所有的数据类型都表示为张量。张量
是一个多维数组,如果直接打印某一个张量,并不会像打印 List 或 NumPy 一样输出它的值,而是会得到一个
结构,结构中包括该张量的名称、维度和类型。
(3)TensorFlow 的运行模型为会话(Session),在 TensorFlow 中,有了数据模型以及计算模型后,在代
码执行过程中需要使用会话,会话负责管理代码运行时的所有资源。如果没有指定,会话将会自动加入系统
生成的默认计算图中,执行其中的运算。
3.1.2 分布式 TensorFlow
如果一台计算机上有很多 GPU,那么通过 GPU 并行运算的方式可以得到很好的加速效果。但是一台计算
机可携带的 GPU 毕竟有限,要想进一步提升速度,可以将 TensorFlow 分布地运行在多台机器上。2016 年 4 月
14 日,Google 发布了分布式 TensorFlow。
分布式 TensorFlow 有一些基本概念,下面对其进行介绍。
4