【问题标题】:Is Eager Execution meant to replace the tensorflow session approach?Eager Execution 是否旨在取代 tensorflow 会话方法?
【发布时间】:2023-03-14 06:56:02
【问题描述】:

我上一个使用 tensorflow 的项目是在 2016 年,从那以后引入了 Eager Execution。在进一步阅读之后,似乎可以使用它来代替原来的会话对象方法。

由于 Eager Execution 提供了更好的反馈和更直接的方法来设计和调试神经网络,我们应该始终将 Eager Execution 用于新项目,还是原始会话方法有优势?

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    在 tensorflow 2.0 中,将默认启用 Eager Execution。它旨在能够完全替代图形/会话模式,是 tensorflow 开发人员的优先事项。有关更多详细信息,并加入有关该主题的讨论,请查看 tensorflow github 上的此 RFC:RFC: Functions, not sessions in 2.0tensorflow roadmap 也暗示了这一点。

    对新项目使用 Eager 模式很好。到目前为止,原始会话方法仍有优势(正如 jdehesa 所提到的,一些“高级功能”尚不兼容 Eager),但 TensorFlow 开发人员正在积极致力于改进 Eager(和图形)模式。如果您遇到任何问题或缺少功能,我们感谢 github 上的错误报告。

    【讨论】:

    • 这很有趣,我的回答是基于我对 TF 1.x 中 Eager 的了解及其发布公告中的信息,但我不知道 TF 2.x 的计划。我实际上对非急切模式很满意,我希望 TF 2.x 不会改变这一点。您认为说我的回答基本上只适用于 TF 1.x 是否正确?
    • 图形模式仍将存在于 2.x 中,并且至少会像现在一样具有性能(并且仍然能够在不同的执行环境等中运行,正如您所提到的 - 将会有与 1.x 兼容的 API)。 Eager-by-default 的一些细节仍在解决中,例如如何保存和导出模型(参见上面的 RFC),所以很难说随着 2.x 的更多开发,这个问题的答案将如何改变.我鼓励你加入github.com/tensorflow/community/tree/master/rfcs 的讨论——我们重视来自 TF 开发者社区的反馈 :)
    【解决方案2】:

    编辑:

    以下答案基于 Eager move 的公告帖子和当前可用的文档。不过,rachelim's answer 提供了有关 Eager 模式的未来计划及其在 TensorFlow 2.x 中更重要作用的进一步见解。


    不,Eager Execution 是作为学习和实验的“简单模式”引入的。 TensorFlow 的优势在于其计算图结构和独立于执行环境(会话);例如,这使您可以运行分布在不同机器上的相同模型或将其导出以跨不同语言使用。

    当然,如果可以满足您的所有需求,您可以在“生产”中使用 Eager 模式,但请注意,您将无法访问许多高级功能,即使在这些可以“移植”的情况下" 对于急切执行,这样做可能不是开发人员的优先事项,因为它不应该取代“传统”执行模式。

    编辑:如需进一步参考,请参阅 Eager Execution 指南中的 Work with graphs,其中指出了基于图形的代码与 Eager 代码的一些优点以及如何使用这两者。

    【讨论】:

      猜你喜欢
      • 2018-10-02
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2019-02-06
      • 1970-01-01
      • 2020-02-16
      • 2020-01-10
      相关资源
      最近更新 更多