打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python对于数据科学而言已死:谷歌杀死了它!

https://m.toutiao.com/is/Jo62obk/ 



作者:Murray Vanwyk是Programmai公司的首席技术官

谷歌的Swift for Tensorflow对于数据科学和机器学习而言意味着什么?

Python对于数据科学而言已死,这种说法似乎有点怪怪的。毕竟,如今Python是数据科学界当仁不二的语言,人气从未如此旺过。2020年11月,它击败了长期备受青睐的Java,夺得编程语言排行榜第二名。我一直认为Python是每位数据科学家都应该知道的编程语言。数据科学领域的大部分工作是实现和执行,而Python在方面表现出众。它拥有出色的软件包支持,让您可以将不同的代码段粘合在一起,快速启动并运行代码段。外面有许多文章和论文介绍数据科学,所附的Python代码可帮助您在进行开发时迅速解决棘手的问题。这一切意味着您可以极其高效地工作,其他语言难以望其项背。别误会,我是喜欢Python,但是它也有缺点,而这些缺点促使谷歌迈出了下一步。

Python的最大问题是它不是一种高性能的语言。数据科学需要处理大量数据;由于很久以前的设计决策,Python根本无法扩展。为了解决这些问题,开发人员将其他语言(比如C和Fortran)混入到了Python代码中。这种做法非常务实,但也存在缺点。如果您曾经试图了解来自NumPy、Tensorflow或其他大多数数据科学软件包中的函数中到底发生了什么,您最终会碰上“C墙”(“C Wall”)。这是Python代码结束、C代码开始的临界点,通常也正是在这个点,您只好放弃,干脆接受不知道发生了什么情况的事实。当然,您可以在github上找到源代码,并可能设置另一个调试器以遍历该函数及其调用的任何其他函数,但这已经牺牲了Python给您带来的最大优点:生产力。

试图并行化处理任何实质性内容也会大大降低生产力,因为您有悖于GIL。GIL(或全局解释器锁)保证同一时刻只有一个线程在运行,这意味着您必须执行烦人的操作,比如对进程进行分叉(forking)。Python确实为您提供了不错的包装器来实现此目的,但是到头来分叉并不高效。

随着数据科学问题逐渐进入到移动平台和物联网平台,性能也带来了挑战。如果您想在物联网传感器上运行预测模型,可能会使用Python来开发和训练该模型,但由于传感器资源有限,因此使用另一种语言来部署模型。训练和部署使用不同语言加大了研发与生产之间的缺口,并加大了出现问题的可能性。

诸如此类的问题使得人们很难在机器学习领域求得突破,这就是为什么谷歌开发了Swift for Tensorflow。我头一次听说它时,以为它只是在iOS应用程序中运行Tensorflow模型。谷歌在Swift方面所抱的野心似乎要大得多。谷歌甚至称之为“用于深度学习和可微计算的下一代系统”。这里的关键字是“下一代”。谷歌甚至详细说明了为什么Python对Tensorflow而言不是一门优秀的语言。

与Python相比,Swift速度更快。快得足以让Tensorflow团队认为不久“Swift将成为在许多使用场合取代C++的可靠语言”。Python是Tensorflow的主要语言,不过据github声称,它仅占代码库的26%,而C++占代码库的61%。Swift还通过对pthread的低级访问来支持更好的并行化机制,或者您可以使用Swifts GCD(大中央调度)。还一直在努力添加新的并发模型以进一步改善扩展机制。最后,Swift旨在可以在iOS之类的移动设备上运行,在Raspberry PI等物联网平台上运行起来比Python更快,占用的内存更少。

谷歌已采取了几个措施来简化数据科学家向“下一代平台”转型的工作。NumPy是数据科学界的重要组成部分,也是许多软件包的基础。谷歌一直将其重新实现为TensorFlow NumPy:与传统的NumPy相比,它具有许多优点,比如GPU加速。至于其他软件包,您可以使用PythonKit来运行,就像它们是为Swift开发的一样。现在,外头所有那些附有代码的文章和论文都可以在您的Swift程序中重复使用。您猜怎么着?PythonKit的根源其实可以追溯到谷歌和Tensorflow团队。谷歌甚至确保您可以在Jupyter笔记本中使用Swift,那样您就不必改变原有的工作流程。

现在,我倒不是说谷歌一心要杀死Python,但是很明显,谷歌已发现了这门语言对于数据科学而言存在的局限性。鉴于谷歌在机器学习方面已投入了巨资,它会在其他人之前碰到这些局限性自在情理之中。问题是,您在多久之后也会碰到这些局限性?谷歌和Tensorflow正在离Python渐行渐远,最终您也会亦步亦趋。唯一的问题是何时您何时也离Python渐行渐远。

想要更深入地探究技术细节,请参阅谷歌Tensorflow团队撰写的这篇文章(https://github.com/tensorflow/swift/blob/master/docs/WhySwiftForTensorFlow.md#python-challenges)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python并不完美,Swift正在成长为深度学习语言
谷歌为何要养苹果的亲儿子Swift?原来意在可微分编程
2022年你要掌握的十个Python优质库
可以抛弃 Python?Google 开源 Swift for TensorFlow 意味什么
GitHub上的五大开源机器学习项目
广受欢迎的4个机器学习和数据科学Python模块
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服