TensorFlow 1.0 把机器学习引入智能手机
点击上方蓝色“网路冷眼”可以订阅哦!
TensorFlow 1.0 是 Google机器学习库的首个主要版本,带来许多革命性的变化,包括了提供移动设备进行高效深度学习的功能
Google的开源深度学习框架TensorFlow已经发布了一个完整版1.0的发布候选版本。
版本1.0不仅改进了机器学习函数的框架,而且让用户使用 Python 和 Java 语言进行TensorFlow 开发更加容易,并改进了调试功能。引入一个新的优化TensorFlow计算的编译器,打开了一扇新的机器学习应用程序的大门,这些App可以运行在智能手机级的硬件。
Python 和 Java 双箭齐发
由于Python是构建和使用机器学习应用程序的最大平台之一,因此TensorFlow 1.0专注于改进Python交互特性。 TensorFlow Python API已经升级,以便TensorFlow使用的语法和隐喻能更好地匹配Python自身,从而在两者之间提供更好的一致性。
坏消息是,这些更改确实打破现有的Python应用程序而无法运行。尽管 TensorFlow的开发人员已经发布了一个脚本,用于将旧格式TensorFlowAPI脚本自动升级到新格式,但脚本无法修复所有问题;可能仍需要根据需要手动调整脚本。
所有Python用户可以在与Python3兼容的Docker镜像中使用TensorFlow。TensorFlow 也可以通过Python的原生软件包管理器pip来安装TensorFlow。这是完成TensorFlow的通用性迈出的巨大步伐,特别是对于那些使用股票Python分布,而不是专门针对数据科学(如Anaconda)。
Java 是机器学习的另一个主要语言平台,但 TensorFlow以前没有一组Java绑定。 1.0版本的框架引入了Java API,但它离完整远远不够,并随时可以改变,你需要能够在Linux或MacOS上从源代码构建TensorFlow。(考虑这进一步的证据,TensorFlow的Windows移植仍然是一个二等公民。)
XLA 驱动移动机器学习
也许TensorFlow 1.0的最大的附加功能不是语言支持特性或新的算法,而是用于TensorFlow计算中的线性代数的实验性编译器--加速线性代数(Accelerated Linear Algebra ,XLA)。它通过生成可以在CPU或GPU上运行的机器代码来加速某些数学运算。现在,XLA只支持Nvidia GPU,但这与GPU支持机器学习应用程序的一般性质是一致的。
XLA还提高了TensorFlow的可移植性,使现有的TensorFlow程序通过简单地创建后端,就可在新的硬件平台上运行而不需修改代码。考虑到IBM将TensorFlow支持添加到其用于机器学习的PowerAI硬件解决方案(混合支持GPU和Power8 CPU)方面,这是一个很大的优势。
TensorFlow的工程师也减少了应用程序的总体内存使用和占用空间。这些优化得到了全面的回报,但对于移动来说,这是一个特别大的优势。以前的TensorFlow版本增加了对Android,iOS和Raspberry Pi硬件平台的支持,允许它在这些设备上执行图像分类等操作。
机器学习的讨论通常涉及高端硬件的驱动力:定制CPU,GPU阵列,FPGA以及云环境提供的大规模环境。但是理论认为,创建在平均智能手机上工作的机器学习模型,而不需要云端后端提供24X7小时支持服务,可以带来新的应用程序。即使这些目标没有完全实现,这项工作将为TensorFlow提供的好处应该值得的努力。
英文原文:
TensorFlow 1.0 unlocks machine learning onsmartphones
http://www.infoworld.com/article/3162413/artificial-intelligence/tensorflow-10-unlocks-machine-learning-on-smartphones.html
作者:Serdar Yegulalp
在微信里长按二维码可以关注公众号“网路冷眼”