【问题标题】:How to use Tensorflow Keras API如何使用 Tensorflow Keras API
【发布时间】:2018-10-25 02:44:34
【问题描述】:

好吧,我开始学习 Tensorflow,但我注意到如何使用这个东西有很多困惑.. 首先,一些教程使用低级 API tf.varibles、范围...等来展示模型,但其他教程使用 Keras,例如使用张量板来调用回调。 其次,拥有大量重复 API 的目的是什么,当您使用低级别构建像乐高积木这样的模型时,使用像 Keras 这样的高级 API 的真正目的是什么? 最后,使用 Eager Execution 的真正目的是什么?

【问题讨论】:

    标签: python python-3.x tensorflow tensorboard


    【解决方案1】:

    您可以一起使用这些 API。例如。如果你有一个常规的密集网络,但有一个特殊的层,你可以为密集层(tf.layers 和 tf.keras)使用更高级别的 API,为你的特殊层使用低级 API。此外,复杂的图更容易在低级 API 中定义,例如如果你想共享变量等。

    Eager execution 可帮助您进行快速调试,它直接评估张量,无需调用会话。

    【讨论】:

    • 感谢您的回复,在我将您的回复标记为有效答案之前,您能否提供一个混合 API 和 Tensorboard/TensorGraph 的简单演示。
    【解决方案2】:

    有不同“级别”的 API(高级 API,如 keras 和估算器,以及低级 API,如变量等)以满足不同的开发人员需求。

    对于已经大致了解您打算使用哪种 ML 模型的普通行业开发人员来说,keras 非常适合。例如,如果您知道要实现具有两个密集层和 softmax 激活的顺序模型,则只需执行以下操作:

    model = keras.Sequential([
      keras.layers.Dense(128, activation=tf.nn.softmax),
      keras.layers.Dense(10, activation=tf.nn.softmax)
    ])
    

    使用 keras 通常更简单,因为您不必考虑诸如 tf.Variables 之类的低级实现细节。如需更完整的示例,请查看 tensorflow.org 上的 keras tutorials

    低级 API 允许用户更好地控制您正在开发的模型。这些 API 更常被开发新机器学习方法的开发人员和研究人员使用;例如,如果您需要一个与规范 ML 方法不同的专用层,您可以使用低级 API 手动定义一个层。

    最后,急切执行是一种命令式编程风格。它可以实现更快的调试,并且对于那些刚接触 tensorflow 的人来说具有更温和的学习曲线,因为它更“pythonic”/直观。查看eager guide 了解更多信息。

    【讨论】:

    • 感谢您的详细回答。假设我使用低级 API 制作分割模型,并且我有一个使用从 Internet 下载的 Keras API 预训练的 VGG16(我检查了 *.py 文件,发现它使用 Keras API)如果需要或我需要,它可以正常工作在低级 API 中实现的预训练 VGG?
    猜你喜欢
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    相关资源
    最近更新 更多