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使用数据流图进行数值计算,图中的节点代表数学运算,图中的边则代表在这些节点之间传递的多维数组(tensor)。
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获得了极大成功,但在学习过程中读者需要注意下面这些问题。
□由于Tensorflow的接口一直处于快速迭代之中,并且版本之间存在不兼容的问题,因此开发和调试过程中可能会出现一些问题(许多开源代码无法在新版的Tensorflow上运行)。
□想要学习Tensorflow底层运行机制的读者需要做好准备,Tensorflow在GitHub代码仓库的总代码量超过100万行,系统设计比较复杂,因此这将是一个漫长的过程。
□代码层面,对于同一个功能,Tensorflow提供了多种实现,这些实现良莠不齐,使用中还存在细微的区别,请读者注意,避免入坑。另外,Tensorflow还创造了图、会话、命名空间、PlaceHolder等诸多抽象概念,对普通用户来说可能会难以理解。
总结:凭借着Google强大的推广能力,Tensorflow已经成为当今最为热门的深度学习框架,虽不完美但是最流行,目前,各公司使用的框架也不统一,读者有必要多学习几个流行框架以作为知识储备,Tensorflow无疑是一个不错的选择。