TensorFlow 1.0 要来了!它将带来哪些革命性变化?

在发布逾一周年之际,TensorFlow 终于将迎来史上最重大更新:TensorFlow 1.0。

对于不熟悉开源框架的读者,TensorFlow 是谷歌 2015 年底推出的深度学习框架,在开发者社区享有盛誉。去年,它已成为 GitHub 最受欢迎的机器学习开源项目。因其高度普及率,尤其是在 Python 生态圈中,TensorFlow 的功能变化会对全世界的机器学习开发者造成重大影响。

本月初,谷歌公布了 TensorFlow 1.0.0-alpha ,即 TensorFlow 1.0 的第一个“草稿”版本。近日,新的候选版本 TensorFlow 1.0.0-rc0 被发布出来,披露了更多技术细节,标志着我们离 “完全体”的 TensorFlow 1.0 更近一步。

雷锋网消息,1.0 版本不仅为 TensorFlow 机器学习函数库带来多重升级,而且为 Python 和 Java 用户使用 TensorFlow 做开发降低了难度。另外,新版本的漏洞修补也得到了改善。更有意思的是,由于对 TensorFlow 计算做优化的新编译器,在智能手机上运行基于 TensorFlow 的机器学习 APP 将成为可能

强化对 Python 支持,加入 Java API

由于 Python 是最常用的机器学习开发语言,TensorFlow 1.0 对 Python 交互作了重点改进——Python API 得到升级,TensorFlow 使用的语法和隐喻(syntax、metaphor)与 Python 的能更好吻合,提升两者之间的一致性

雷锋网获知,该升级带来了一个坏消息:现有 Python 应用将无法兼容。TensorFlow 开发者们已经发布了一个能把旧 TensorFlow API 转化为新格式的脚本,但是该脚本无法解决所有问题——很多情况下,开发者需要人工调整脚本。

TensorFlow 现已支持与 Python 3 兼容的 Docker 镜像。对于所有 Python 用户,TensorFlow 现在可以通过 Python 的原生软件包管理器 pip 来安装。这是提升 TensorFlow 可用性的关键一步,尤其对于那些使用原生 Python 应用分发、而非使用数据科学专用体系(比如 Anaconda)的用户。

Java 是机器学习领域的另一个主流语言平台。此前,TensorFlow 并没有对其支持,更没有一系列对 Java 的捆绑,而新的 1.0 版本引入了一个 Java API。但雷锋网提醒,它还远未成熟,随时可能会有变化。而且,你需要 Linux 或者 Mac OS 平台上的来源来开发 TensorFlow(你可以把这作为 Windows 端 TensorFlow 是二等公民的另一个证据)。

XLA,使 TensorFlow 在移动设备上运行

TensorFlow 1.0 的最大变化或许不是新语言支持或者新算法,而是 XLA —— 全称 Accelerated Linear Algebra,意为加速线性代数,是一个针对 TensorFlow 中线性代数运算的试验性质编译器。它通过生成既能运行于 GPU、又能在 CPU 运行的机器代码,来加速数学计算。目前, XLA 只支持英伟达 GPU,但这与当下机器学习应用对 GPU 支持的现状是一致的。

XLA 提升了 TensorFlow 的移动性。现有的、未经调整的 TensorFlow 程序只需创建一个后端即可在新硬件平台上运行。这么做的意义非同寻常 ——此前, IBM 就为它的 PowerAI 机器学习硬件解决方案加入了对 TensorFlow 的支持,前者由 Power8 CPU 和 GPU 混合运行。

TensorFlow的工程师已经缩减了它的整体内存占用和 APP 的存储空间占用。这些优化对各类硬件运行环境都有好处,但对于移动平台尤其重要。此前的 TensorFlow 版本已经加入了对安卓、iOS 和 Raspberry Pi(树莓派微型电脑)硬件平台的支持,使得 TensorFlow 能在这类设备上处理诸如图像分类之类的任务。

关于机器学习的讨论往往会涉及高端硬件——机器学习,尤其是深度学习,是发展高端硬件的重要推动力量,不管是定制 CPU、GPU 阵列、FPGA 还是支持云端坏境的规模化硬件。但有理论认为,创造出能在普通智能手机上运行的机器学习模型,而无需 24 小时每时每刻的云端支持,将会孵化出一系列新型应用。这便是 TensorFlow 1.0 的野心之一。

via infoworld

雷锋网

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>