Page 88 - 软件工程与项目管理
P. 88
软件工程与项目管理
Software Engineering & Project Management
框架已经无法满足日益复杂的模型和庞大参数的需要,此外更大的数据规模和参
数规模也对分布式提出了要求。多家互联网巨头公司出于自身业务的需要及深度
学习发展的需要推出了较为成熟的深度学习框架,在功能设计与资源支持方面有
了很大提升。
TensorFlow 是谷歌公司于 2015 年开源的深度学习框架,由 Google Brain 团队
在前期开发的神经网络算法库 DistBelief 的基础上开发完成。TensorFlow 具有多
项优点:第一,与 Theano 类似,TensorFlow 同样采用数据流图进行计算,计算
图中节点代表数学运算,而图的边表示节点间的数据。第二,对不同平台有极强
的支持。TensorFlow 编程接口支持 C++ 和 Python,TensorFlow1.0 版本支持 Java、
GO、R 等编程语言,还支持谷歌云平台和 AWS 运行。此外,由于 TensorFlow 使
用 C++ 的 Eigen 库,因此可以在 ARM 架构上进行编译和优化,而 ARM 处理器
常用于智能手机等移动设备,这使得使用者可以在各种服务器和移动设备上部署
基于 TensorFlow 训练的模型。第三,完善的资源和生态。得益于谷歌公司的强大
支持,TensorFlow 框架具有全面灵活的生态系统,包含各类工具、库和社区资源,
有利于使用者学习和解决问题。并且谷歌研究人员使用 TensorFlow 框架进行深度
学习研究,也使 TensorFlow 框架拥有许多最前沿模型与研究成果,这也在很大程
度上增加了框架的吸引力。
虽然TensorFlow框架是当前使用最广泛的深度学习框架,但也存在许多问题:
第一,接口变动太频繁。TensorFlow 的接口迭代速度太快,且版本之间兼容性差,
这使老版本的代码无法在新版本上运行,为开发和调试工作带来了很多困难。第
二,系统设计复杂。TensorFlow 的底层运行机制非常复杂,代码量极高,学习难
度较大。TensorFlow 中还存在许多抽象概念,较难理解,这也增加了用户的学习
难度。第三,功能实现不统一。在 TensorFlow 中,同一功能有多种实现方法,但
不同方法的效果存在差距,使用也有差别,这给框架的使用者带来了困扰。第四,
调试困难。由于 TensorFlow 采用了先定义再运行的静态图模式,故在调试上存在
一定困难。为了解决这一缺点,TensorFlow 后续又推出了 Eager 模式,无需先构
造计算图,可以直接对结果进行评估。TensorFlow 在工业界占有主流地位。一方面,
谷歌内部的搜索等大量业务使用 TensorFlow,另一方面,其静态图的特性使模型
的运行部署效率更高,更受工业应用欢迎。自公布以来,TensorFlow 已经成为最
成功的深度学习框架之一,其良好的表现和谷歌公司强大的推广都是 TensorFlow
78
78

