此前,lattner在苹果领导开发的swift不仅速度快,可用性高,在开发者群体中极受欢迎,随后,在tesla短暂停留的六个月之后,lattner于2017年8月选择加盟google brain,专攻机器学习和人工智能,目前来看,swift for tensorflow应该其加入google之后的第一个大动作。
另外,tensorflow还详细介绍项目的几个重要领域,通过“graph program extraction”的算法,可以让开发者用 eager execution 式的编程模型来实现代码,同时保留 tensorflow 计算图的高性能优势。并且,这个项目还允许开发者直接通过swift代码任意使用python api。
当然,tensorflow官方还提到,之所以选择swift作为主语言,目的在于“实现可靠的 graph program extraction 算法对于编程语言的设计有很高的要求”。
总的来讲,自从tensorflow开源之后,其提供的api对搭建神经网络有着足够的自由度,很大程度上为开发者们搭建和实现功能解决了后顾之忧,但另一方面,鉴于使用tensorflow的基本模型,python作为数据科学家专用的最舒适的语言,与tensorflow也是一个很自然的契合。甚至连fast.ai创始人、前任kaggle总裁jeremy howard在看到此次项目之后曾在twitter上评论:“我们是不是终于可以放下python了?”
推荐课程:python教程。
此前,tensorflow官方曾给出一个特别的提示:“现在使用swift for tensorflow重写你的深度学习模型还为时尚早。”
那么,我们何时需要开始真得需要并投入到swift中来呢?
近期,来自fritz.ai联合创始人兼ceo jameson toole发表一篇标题为《为什么数据科学家应该开始开始学习swift》(why data scientists should start learning swift),其中,他谈到了swift for tensorflow以及机器学习发展的未来。
他表示,不要将swift视为tensorflow的简单包装,以便其更易于在ios设备上使用。其意义远不止如此。该项目改变的将是整个机器学习和数据科学生态系统使用的默认工具。
为什么这么讲呢?
他继续谈到:
“在此背景之下,可以看到两种趋势正慢慢渗透:一个是通过神经网络和深度学习掀起的人工智能复兴;一个是向数十亿智能手机和物联网设备上运行的移动为先应用的转变。这两种技术都需要高性能计算能力,这种情况下python就显得尤为不适了。
一方面,深度学习在算力上非常昂贵,需要通过张量运算的长链传递巨大的数据集。为了快速执行这些计算,软件必须将数以千计的线条和内核与专用处理器进行编译。在移动设备的功耗和热量被得以真正关注的情况下,这些问题开始加剧了。相对来讲,以更少的内存换来更为高效的处理器以优化应用,这都是一个不小的挑战。显然,迄今为止,python依然不再是一个很好的解决方案。
而对数据科学家和机器学习研究人员来讲,这就是很大的问题。因为,我们不再诉诸于让gpu承受大量工作负载,但多数人又深陷移动应用开发的泥潭,再耗费时间学习一门新的编程语言似乎不太现实,但这种转换成本实在太高了。例如node.js这样的javascript项目和react native这样的跨平台抽象工具。现在,我很难在python的环境下完成项目。
在由机器学习和边缘计算主导的世界中,python无法成为端到端语言,主要还是因为swift for tensorflow的推动。chris lattner认为,python作为一种动态型语言,无法带领我们走得更远。用他的话来讲,工程师需要一种把机器学习当做‘一等公民’的编程语言。当然,虽然他深刻阐述了为什么采用新的编译分析与改变利用tensorflow搭建项目的方式息息相关,但是他最为引人瞩目的还对编程过程的理解。”
以上就是谷歌为什么放弃python的详细内容。
