【问题标题】:keras vs. tensorflow.python.keras - which one to use?keras 与 tensorflow.python.keras - 使用哪一个?
【发布时间】:2018-07-31 07:16:41
【问题描述】:

哪一种是推荐的(或更面向未来的)使用 Keras 的方法?

各自的优缺点是什么?

我想除了保存一个pip install 步骤和写tensorflow.python.keras 而不是keras 之外,还有更多的区别。

【问题讨论】:

    标签: python tensorflow pip deep-learning keras


    【解决方案1】:

    tensorflow.python.keras 只是一个 keras 包,在 tensorflow 包内有一个后端。这使您可以通过安装 pip install tensorflow 来开始使用 keras。

    keras 包包含完整的 keras 库,支持三个后端:tensorflow、theano 和 CNTK。如果你甚至想在后端之间切换,你应该选择keras 包。这种方法也更灵活,因为它允许独立于 tensorflow 安装 keras 更新(这可能不容易更新,例如,因为下一个版本可能需要不同版本的 CUDA 驱动程序),反之亦然。出于这个原因,我更喜欢将keras 安装为另一个包。

    在 API 方面,目前没有区别,但 keras 未来可能会更紧密地集成到 tensorflow 中。所以有可能在 keras 中会有 tensorflow-only 功能,但即使在这种情况下,使用 keras 包也不是一个障碍。

    更新

    从 Keras 2.3.0 版本开始,Francois Chollet 宣布用户应该改用 tf.keras 而不是普通的 Keras。因此,所有用户都应更改为 tf.keras 而不是 keras

    【讨论】:

    • 哪一个是最新的? IE。最先取得的最新进展在哪里?在 Keras 或 tf.keras 中?
    • 并非所有内容都在tf.keras 中,某些功能仍在tf.python.keras. 中,就像所有vis_utilsload_weights_from_hdf5_group_by_name 一样。
    【解决方案2】:

    2019-10 小更新:

    Keras 团队通过release of version 2.3.0 宣布了以下内容:

    这也是多后端 Keras 的最后一个主要版本。展望未来,我们建议用户考虑将其 Keras 代码切换到 TensorFlow 2.0 中的 tf.keras。它实现了相同的 Keras 2.3.0 API(因此切换应该像更改 Keras 导入语句一样容易),但它对 TensorFlow 用户有许多优势,例如支持急切执行、分发、TPU 训练以及通常更好的集成介于低级 TensorFlow 和高级概念(如层和模型)之间。它也得到了更好的维护。

    未来的开发将集中于 tf.keras。在接下来的 6 个月内,我们将继续维护多后端 Keras,但我们只会合并错误修复。 API 更改不会被移植。

    所以现在,tf.keras 似乎是要走的路。

    【讨论】:

      猜你喜欢
      • 2016-10-06
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 2018-01-30
      • 1970-01-01
      • 2018-10-21
      • 2020-04-05
      相关资源
      最近更新 更多