Keras将死于谷歌之手?reddit网友写“送葬文”,引发热议

2021-04-07 21:51 799 阅读 ID:321
量子位
量子位
    子豪 发自 凹非寺
    量子位 报道 | 公众号 QbitAI

    Keras一直深受程序员的欢迎,就在几天前,MIT CSAIL刚帮它庆祝了6周岁生日。

    然而,一转眼,reddit上却在为它举办“葬礼”

    一篇“Keras正在被谷歌杀死”的帖子,在reddit上引发热议。

    6岁的Keras经历了什么?

    Keras和TensorFlow渊源颇深

    Keras最初由一位谷歌工程师开发,是一个开源高层深度学习API,其开发重点是支持快速实验。

    由于Keras本身不具备底层运算能力,所以需要和具备底层运算能力的后端协同工作。

    最初发行的时候,Keras支持以Theano、CNTK等作为后端,而那个时候TensorFlow还没有开源。

    而用户对Keras的评价,正如reddit文章作者所说:

    “Keras早在几年前就可用,而且API稳定,这是它巨大的优势……最初的Keras只是一个机器学习的高级API规范,与缺少工程背景的人合作时,这点非常好。”

    TensorFlow则是谷歌公司开发的开源软件库,用于各种感知和语言理解任务的机器学习,具有很强的功能性。

    2015年11月,谷歌将TensorFlow0.1开源,而后逐渐稳定,并发展出强大的用户群,成为深度学习框架的NO.1。

    于是从Keras v1.1.0开始,TensorFlow成为Keras的默认后端,二者的用户量也产生关联。

    不过,TensorFlow逐渐由于API稳定性不足、静态计算图编程复杂等缺陷,遇到了发展瓶颈。

    与此同时,PyTorch的动态图开发模式,以及更加便捷的编程方式,不断吸引TF的用户转换阵营。

    这迫使谷歌作出改变,考虑到Keras简单易用,还拥有强大的用户基础,于是谷歌将它集成进TensorFlow2.0,成为了tf.keras。

    本应是个皆大欢喜的结果,却出现了不少质疑声。作者就表示:TF2延续了TF1的缺点,而Keras的优势正慢慢消失。

    “谷歌将其并入TensorFlow2,这本身没有问题,但Keras正在被慢慢“杀死。”

    之所以产生这样的观点,他给出了3个理由

    • Keras API 在合并期间被 “冻结 ”,使得它的功能落后于其他替代品;

    • TF2的发布得太晚。最重要的是,第一版的bug很多,到现在仍缺乏一些基本功能;

    • 谷歌把TF1的烂摊子搬到TF2,让框架变得极其臃肿。出现故障时,冗长而含糊的错误信息和大量的堆栈痕迹,会让人不知所措。

    他强调自己一直使用原始Keras,对谷歌没有偏见,也不是在抱怨TensorFlow。但Keras和TF2的故事让他感到沮丧,因此将这篇文章作为Keras API的葬礼……

    这篇略显伤感的文章引起了网友关注,一起看看其他人怎么说。

    网友观点

    这篇“送葬文”获得了400+点赞,不过从评论来看,只有少数网友表示同感。

    “和愚人节无关,这完全表达了我对Keras和TF2的看法。”

    大多数网友并不认同作者的看法,认为tf.keras比之前更胜一筹。

    “完全不同意这种观点。

    Keras API比以往任何时候都容易;拥有更多功能,可以轻松利用TF分布式培训;只需几行代码,就可以在数百个GPU上训练一个巨大的模型。如果是开发简单的模型,Keras比过去更简单,功能更强大。

    虽然合并过程的确有点混乱……”

    不少网友站在TF用户的角度,认为集成Keras是TF2的一大亮点。

    “TF允许创建生产管道,采用多种策略进行分布式培训,而Keras只有能在多个GPU上训练模型这一个不错的功能……
    对我这样的TF用户而言,集成Keras是件非常好的事。”
    “我没看到Keras消失,谷歌怎么会杀死它呢?”
    “我从2016年一直使用它,现在虽然存在问题,但是比直接用TF更好”

    PyTorch在前,JAX在后

    此贴一出,网友们必然要将各家框架比较一番。

    虽然TF2.0将重心放在了简单性和易用性上,但在大多数人看来,PyTorch仍然更胜一筹:

    “我们有更灵敏的PyTorch,有什么理由去用TensorFlow?”
    “我认为Keras会被PyTorch取代。过去使用Keras和TensorFlow的大多数人以及一些用PyTorch的人,都正在转向JAX,它非常实用且快速。”

    JAX由谷歌开发,其前身是Autograd(通过numpy和本机python代码进行梯度计算的库),作为TF的简化库。

    网友评价JAX更像是TF和python的混合体,保证功能性的同时,仍然简洁易用。程序员们还为它开发了Haiku代码库,使用户能面向对象开发。

    有人表示:“实际上,比Keras消失更糟的是,TF2杀死了TensorFlow。”

    “TensorFlow从一开始就是一团糟,作为可微编程的易用工具,设计问题阻碍了其灵活性,主要是静态计算图。PyTorch的动态计算图效果更好,因此TF2试图赶超,但为时已晚。
    JAX真的很不错,应该是未来的发展趋势。”

    PyTorch带来的危机尚在,如今谷歌又大力开发JAX。也许在未来某天,JAX会成为谷歌的主要神经网络库。

    此番境地,Keras未来真的会消失吗?

    reddit链接:
    https://www.reddit.com/r/MachineLearning/comments/mhrpbm/d_Keras_killed_by_google/

    —完—

    @量子位 · 追踪AI技术和产品新动态

    深有感触的朋友,欢迎赞同、关注、分享三连վ'ᴗ' ի ❤

    免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
    反馈
    to-top--btn