2015 年 11 月 9 日,作为 Google Brain 的第二代机器学习系统的 TensorFlow 作为开源软件发布,TensorFlow 可以运行在多个 CPU 和 GPU(和可选的 CUDA 扩展)。它运行在 64 位 Linux 或 macOS 桌面或服务器系统,以及在移动计算平台上,包括 Android 和 iOS。
不少技术团队正在使用 TensorFlow 进行研究和生产。
TensorFlow 的名字来源于这类神经网络对多维数组执行的操作。这些多维数组被称为“张量”,但这个概念并不等同于张量的数学概念。其目的是训练神经网络检测和识别模式和相互关系。
从诞生至今,已经有两年多的时间。谷歌在 TensorFlow 身上没少下功夫,不仅为它制作了专用集成电路 TPU(张量处理单元),还为它移植了可在移动端使用的 TensorFlow Lite,总而言之,谷歌恨不得将所有新的 AI 技术都放在它的身上。
那么,短短一段时间里,TensorFlow 都发生了哪些变化?要回答这个问题,我们需要把时间往回调一调。
时间回到 5 月 18 日,谷歌 I/O 大会召开。
在会上,谷歌宣布创建了第二代 TPU 芯片“云 TPU(Cloud TPU)”,它以谷歌的开源机器学习框架 TensorFlow 的名义命名, 主要是用于训练和运行机器学习模型。Cloud TPU 可以处理高达 180 万亿次浮点运算,谷歌大脑负责人 Jeff Dean 表示,这个速率能够将机器学习训练所花费的时间,从几个星期缩减到几天甚至几个小时。Pichai 还公布了机器学习超级计算机 Cloud TPU Pod,将 64 个 Cloud TPU 组合在一起 ,能够带来 11.5 petaflops 的超级计算能力。
大会同时还宣布了一个专门针对移动电话而优化的 Tensorflow 新版本:TensorFlow Lite。
这一新的软件库称为 TensorFlow Lite,允许开发人员在用户的移动电话上实时地运行人工智能应用。据介绍,该库在设计上力求更快和更小的同时,依然支持最先进的技术。它将作为开源 TensorFlow 计划的一部分于今年稍后发布。
当前大多数人工智能处理运行在软件即服务(SaaS)提供商的服务器端。通过该软件库的发布,Google 希望能将一些处理转移到用户的移动电话端。这不仅可以节省处理能力,而且降低了数据量。此外,它可确保用户的数据的私有性,可不再依赖于因特网连接。
之后的 5 月 23 日,中国乌镇围棋峰会召开,再次打响“人机围棋大战”。
在柯洁 0:3 负于 AlphaGo 之后,谷歌的技术专家在 24 日的 AI 论坛上对升级版的 AlphaGo 进行解密,TensorFlow 对于 AlphaGo 来说更多的是底层支撑技术,主要的作用是让这个系统运转更加的流畅、速度更快。除了算法上的改进之外,谷歌云和 TPU(向量处理单元)等计算资源上的改进对 AlphaGo 起到了巨大提升作用。
“对战柯洁的 AlphaGo Master 使用更加有效的算法,所需的计算量是 AlphaGo 的 1/10。AlphaGo Master 使用谷歌云提供的 4 块 TPU 单机,你可以把它当做是一台计算机。” TPU 正是 AlphaGo 背后的秘密武器。
除了让人惊艳的 TPU,TensorFlow 对于 AlphaGo 的底层支持和速度的提升也起到了至关重要的作用,谷歌再次让世界看到:能够撑得起 AlphaGo 的运转,TensorFlow 的实力不容小觑。
2017 年 6 月 14 日,谷歌宣布发布 MobileNets。
这是一款用于 TensorFlow 的移动终端计算机视觉模型系列,旨在有效地最大限度地提高准确性,同时注意设备或嵌入式应用程序的受限资源。MobileNets 是小型,低延迟,低功耗模型参数化,以满足各种用例的资源限制。它们可以建立在分类,检测,嵌入和分段上,类似于其他流行的大型模型,如初始化。
2017 年 6 月 16 日,谷歌发布 TensorFlow1.2.0,带来了 14 个全新的功能。在 Windows 上支持 Python3.6、将其 TensorFlow C 的数据库开源给 Windows 使用者等等。种种更新和弃用让 TensorFlow 的性能更进一步,也为它的使用者提供了更多的便利。
开源地址:
https://github.com/tensorflow/tensorflow/releases
2017 年 6 月 19 日,Google 发布 TensorFlow 物体检测 API,帮助开发人员和研究人员识别图片中的物体。Google 专注于提高 API 的易用性和性能,新的模型于 6 月 16 号发布,在基准测试中表现出良好的性能,并已经开始应用于研究工作当中。
物体检测 API 包含了高度依赖 Inception 的卷积神经网络和简化模型,这些模型可以运行在简单的机器上。比如,MobileNets 单次检测器经过优化,能够以实时的方式运行在智能手机上。
从三个月前 I/O 大会上惊艳出世的 TPU2,再到中国乌镇 AlphaGo 的底层架构,谷歌或明或暗地,屡屡让 TensorFlow 出现在大众的视野;从国内到国外,TensorFlow 亦是成为了世界主流深度学习框架之一,谷歌的决心不言自明:让 TensorFlow 成为最好的开源框架。
但是,光有决心似乎是不够的,TensorFlow 从诞生到今天,一路上遇到了不少的艰难险阻,有两个不得不提的对手:英伟达和微软。
不久之前,国外有人发布过一篇微软 CNTK2.0 对决 TensorFlow 的内容,原文章链接如下:http://minimaxir.com/2017/06/keras-cntk/
虽然在不同的测试环境当中,二者的表现各有千秋,但是综合看来,TensorFlow 也并没有占到什么太强的优势,是微软的 CNTK2.0 进步太快还是 TensorFlow 没有什么长进,恐怕只有两大公司的开发者最清楚了。当然,这仅仅是在一种条件下的测试,也许不能说明太多问题,但是我们可以看到,TensorFlow 离最好用的框架还有一段距离。
至于英伟达,因为有大量机器学习的需求,谷歌一直是英伟达 GPU 的一个非常大的(也许是最大的)客户,几乎所有的谷歌和其它人的神经网络训练都是用的英伟达 GPU。
然而,为了自家的 TensorFlow,2016 年 6 月,谷歌推出了 TPU,又在一年后的 I/0 大会上宣布 TPU2.0 的消息,同时宣布推出的包含 1000 TPU (4000 Cloud TPU 芯片)的超级计算机 TensorFlow Research Cloud,提供 180 PetaFlops(约 16 位 FLOP)的计算能力,将免费提供给合格的研究团队。此外,谷歌的超级计算机的设计仅支持谷歌自己的开源 TensorFlow 机器学习框架和生态系统。
相对英伟达的 GPU,谷歌有了 TPU,相对英伟达的 Saturn V 超级计算机,谷歌有了 TensorFlow Research Cloud。谷歌似乎在步步紧逼近年来上升势头的英伟达。就在所有人都认为谷歌的势头能压倒英伟达的时候,Volta 芯片的出现,再次让英伟达占到了上风,它不仅仅是一个深度学习 ASIC,还支持用于科学应用的 32 位和 64 位浮点数以及大规模超级计算机所需的错误纠正内存。有人说:Volta 芯片可以说是世界上最快的图形芯片。
谷歌 Cloud TPU 会对英伟达产生影响,但至少在短期内,由于以上讨论到的限制,谷歌对英伟达的影响可能会比想象的要低。
竞争中发展的谷歌将会面对更多困难,而这种竞争的获益者将会是广大开发者和科技的受用者们,可以预见的是:TensorFlow 相关的软硬件发展将会是谷歌工作的重点,而 TensorFlow 也一定会变得更加方便易用。也许谷歌不算是最好的 AI 科技公司,但是,我们有理由相信,不仅仅是谷歌,任何一家科技公司都将会在 AI 发展竞争的大潮中变得更好。
参考资料:
1.https://zh.wikipedia.org/wiki/TensorFlow
2.https://github.com/tensorflow/models/tree/master/object_detection
3.https://techcrunch.com/2017/05/17/googles-tensorflow-lite-brings-machine-learning-to-android-devices/
4.https://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html
5.https://research.googleblog.com/2017/06/mobilenets-open-source-models-for.html
如果要学框架,就一定要学TensorFlow!
为了让对机器学习、深度学习感兴趣的小伙伴更深入掌握TensorFlow,StuQ在8月开设 【TensorFlow学习月】,并组织【TensorFlow系列公开课】。
第一次公开课,我们请来才云科技(Caicloud)大数据平台工程师,曾代表中国队在埃及亚太大学生机器人大赛获金牌的岑鹏浩老师,在8月15日20:00-21:00,带大家“1小时入门TensorFlow”。
本次公开课,原价99元,现在免费开放给大家,想报名的同学,快去添加下图海报二维码吧~
长按二维码,添加小助手,得到听课地址~
图片来源:网络