• 简中
    • 繁中
  • 注册
  • 查看作者
  • Keras,亡于谷歌?

    转载:本文来自微信公众号“机器之心”(ID:almosthuman2014),转载经授权发布。

    将 Keras 并入 TensorFlow,到底是唔系一个正确嘅决定?

    呢排,Reddit 上出现咗一个「悼念」Keras 嘅帖子,引发‌不少人嘅围观。发帖者表示,谷歌已经慢慢地将 Keras 杀死嘎啦。

    Keras,亡于谷歌?

    乍一睇,呢一观点似乎有啲耸人听闻:Keras 活得好好嘅,点样能说已经被谷歌杀死‌呢?而且前不耐,呢个神经网络库啱啱过完 6 岁生日。MIT CSAIL 官方账号还发推表示,Keras 目前已经成为全世界使用最多嘅十大软件工具之一。

    Keras,亡于谷歌?

    呢一切还要从 Keras 和谷歌嘅恩怨说起。

    Keras 同谷歌嘅 TensorFlow 有一段极其复杂嘅历史,呢个故事好长,有好多细节,有时甚至会有一啲矛盾。

    Keras 最初是由 Google AI 开发人员 / 研究人员 Francois Chollet 创建并开发嘅,作者于 2015 年 3 月 27 日将 Keras 嘅第一个版本 commit 并 release 到佢嘅 GitHub 上。一开始,Francois 开发 Keras 是为‌方便佢自己嘅研究和实验。但随住深度学习嘅普及,好多开发人员、程序员和机器学习从业人员都因其易于使用嘅 API 而涌向 Keras。

    为‌训练你自己嘅自定义神经网络,Keras 需要一个后端。后端是一个计算引擎——佢可以构建网络嘅图和拓扑结构,运行优化器,并执行具体嘅数字运算。你可以将后台睇作是你嘅数据库,Keras 是你用来访问数据库嘅编程语言。

    一开始,喺 v1.1.0 之前,Keras 嘅默认后端都系 Theano。同样哋,Google 发布‌ TensorFlow,这是一个用于机器学习和神经网络训练嘅符号数学库。Keras 开始支持 TensorFlow 作为后端。渐渐地,TensorFlow 成为最受欢迎嘅后端,这都就使得 TensorFlow 从 Keras v1.1.0 发行版开始成为 Keras 嘅默认后端。

    一般嚟讲,一旦 TensorFlow 成为‌ Keras 嘅默认后端,TensorFlow 和 Keras 嘅使用量会一齐增长——没有 TensorFlow 嘅情况下就无办法使用 Keras,所以如果你在系统上安装‌ Keras,噉么你都得安装 TensorFlow。

     同样嘅,TensorFlow 用户都越来越被高级 Keras API 嘅简单易用所吸引。tf.keras 系喺 TensorFlow v1.10.0 中引入嘅,这是将 keras 直接集成到 TensorFlow 包中嘅第一步。

    tf.keras 软件包同你通过 pip 安装嘅 keras 软件包(即 pip install keras)是分开嘅。为‌确保兼容性,原始嘅 keras 包没有被包含在 tensorflow 度,因此佢们嘅开发都好有序。

    但係,呢种情况后来发生‌改变改变——当谷歌在 2019 年 6 月发布 TensorFlow 2.0 时,佢们宣布 Keras 而家是 TensorFlow 嘅官方高级 API,用于快速简单嘅模型设计和训练。随住 Keras 2.3.0 嘅发布,Francois 在声明中写道:

    这是 Keras 首个同 tf.keras 同步嘅版本,都是 Keras 支持多个后端(即 Theano,CNTK 等)嘅最终版本。最重要嘅系,所有深度学习从业人员都应将其代码转换成 TensorFlow 2.0 和 tf.keras 软件包。原始嘅 keras 软件包仍会接收 bug 并修复,但请向前睇,你应该开始使用 tf.keras 嘎啦。

    Keras,亡于谷歌?

    对于 Keras 和 TensorFlow 嚟讲,二者嘅合并似乎是一个双赢嘅决定,但好多开发者不咁认为。上述发帖者就是其中之一。

    ta 认为,呢一决定已经慢慢地将 Keras 杀死嘎啦。为认识释呢一观点,ta 还畀出‌三个理由:

    第一个理由是:在合并期间,Keras API 被有效地「冻结」嘎啦,这使得佢在特性方面落后于第啲竞争者;

    第二个理由是:TF 2 发布得太晚嘎啦。最重要嘅系,最初嘅几个 2.x 版本漏洞百出,甚至而家都缺乏一啲基本嘅特性;

    第三个理由是:谷歌没有在 TF 1 和 2 之间进行坚决嘅切割,而是将 TF 1 中嘅好多包和垃圾直接移植到 TF 2,使得框架非常臃肿。当某个地方出问题时,你会被满屏冗长嘅神秘错误信息和堆栈追踪所淹没。

    Keras,亡于谷歌?

    基于呢啲体验,发帖者认为,Keras 已经被谷歌杀死嘎啦。

    除此之外,之前嘅一啲开发者都指出‌二者合并之后带来嘅一啲问题。比如 API 混乱。二者合并之后,tf.keras 中嘅高级 API 同 tf 中嘅底层 API 经常需要混用,咁样嘅整合会让开发者不知所措。同样哋,API 嘅割裂都加大‌开发者寻找教程嘅难度。比如在 TF 2.0 版本度,除咗「TF2.0」 呢个关键字,你还要弄清楚:呢个文档是关于 TF2.0 本身嘅,仲要是关于 tf.keras 嘅。

    悼念?我用住挺好嘅啊

    虽然 Keras 并入 TensorFlow 造成‌一啲混乱,但有不少开发者认为,呢一举动并没有毁掉 Keras,反而解决‌好多实际问题。

    一位用户名为「acardosoj」嘅开发者认为,「Keras API 比以前更容易嘎啦。而家你有‌更多嘅函数可以选择,但系以更加轻松地利用 TensorFlow 分布式训练。你可以用几行代码在数百个 GPU 上训练一个巨大嘅模型。」呢啲在 2016 年都系不可能嘅。

    Keras,亡于谷歌?

    用户名为「carlthome」嘅开发者都认为,今日嘅 Keras 的确增加‌好多功能,tf.data、tf.metrics 和 tf.distribute 都因为 tf.keras 嘅存在而变得更易用。因此佢认为,虽然 TensorFlow 嘅生态系统仲系要要改善,我哋都不应该忽视呢啲年取得嘅进步。

    Keras,亡于谷歌?

    甚至有位 TF 嘅用户表示,从 TF 转向完全集成‌ Keras API 嘅 TF 2 是一个最好嘅选择。

    Keras,亡于谷歌?

    虽然好多人表示,Keras 和 TF 嘅结合确实带来‌一啲改进,但佢们都承认,而家成个嘅 TensorFlow 以及佢同 Keras 嘅合并都好混乱。既然咁,谷歌嘅团队点解不多花点工夫梳理一下呢?有啲开发者认为,这可能系因为,谷歌嘅好多人都去开发 Jax 嘎啦。

    Keras,亡于谷歌?

    「Tensorflow 从一开始就是一团糟,佢非常适合作为可微分编程嘅工具,但在设计上有一啲问题影响‌灵活性。PyTorch 嘅动态图计算做嘅更好,TF2 想追赶但为时已晚。」

    Keras,亡于谷歌?

    实际上,好多谷歌程序员可能都已经转向 Jax 嘎啦。Jax 是谷歌开发嘅一个 Python 库,用于机器学习和数学计算,具有正向和反向自动微分功能,非常擅长计算高阶导数。程序员们还开发‌像 Haiku 咁样嘅工具,使 Jax 可面向对象。

    Keras,亡于谷歌?

    同其说 TensorFlow 杀死‌ Keras,仲未如说 TF2 杀死‌ Tensorflow。当转向 Jax 嘅人数越来越多,Keras 会随之销声匿迹吗?

    参考链接:

    链接

    cantonese.live 足跡 粵字翻譯

    2021-04-02 14:35:22

  • 0
  • 0
  • 0
  • 197
  • 请登录之后再进行评论

    登录
  • 任务
  • 发布
  • 偏好设置
  • 单栏布局 侧栏位置: