2.1.2 TensorFlow
2015年11月10日,Google宣布推出全新的机器学习开源工具TensorFlow。TensorFlow最初是由Google机器智能研究部门Google Brain团队基于Google 2011年开发的深度学习基础架构DistBelief构建的。TensorFlow涉及大量数学运算的算法库,是目前使用最广泛的机器学习工具之一。Google在大部分应用程序中都使用TensorFlow来实现机器学习。例如,我们使用Google照相或Google语音搜索功能时,就是间接使用了TensorFlow模型,它们在大型Google硬件集群上工作,在感知任务方面功能强大。
TensorFlow在很大程度上可以看作Theano的后继者,不仅因为它们有很大一批共同的开发者,更是因为它们还拥有相近的设计理念——基于计算图实现自动微分系统。
TensorFlow编程接口支持Python和C++。随着1.0版本的公布,相继支持了Java、Go、R和Haskell API的alpha版本。此外,TensorFlow可在Google Cloud和AWS中运行。TensorFlow还支持Windows 7、Windows 10和Windows Server 2016。由于TensorFlow使用C++Eigen库,所以库可在ARM架构上进行编译和优化。这也就意味着用户可以在各种服务器和移动设备上部署自己的训练模型,无须执行单独的模型解码器或者加载Python解释器。
作为当前主流的深度学习框架,TensorFlow获得了极大的成功,但在学习过程中,读者也需要注意如下问题。
1)由于TensorFlow的接口一直处于快速迭代之中,并且版本之间存在不兼容的问题,因此开发和调试过程可能会出现问题(许多开源代码无法在新版的TensorFlow上运行)。
2)想学习TensorFlow底层运行机制的读者需要做好心理准备,TensorFlow在GitHub代码仓库的总代码量超过100万行,系统设计比较复杂,因此这将是一个漫长的学习过程。
3)在代码层面,面对同一个功能,TensorFlow提供了多种实现,这些实现良莠不齐,使用中还有细微的差异,请读者注意区分。另外,TensorFlow创造了图、会话、命名空间、PlaceHolder等诸多抽象概念,对普通用户来说难以理解。
总结:凭借Google强大的推广能力,TensorFlow已经成为当今最炙手可热的深度学习框架,虽不完美但是最流行。目前各公司使用的框架也不统一,读者有必要多学习几个流行框架以作为知识储备,TensorFlow就是一个不错的选择。