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
   83   84   85   86   87   88   89   90   91   92   93