【问题标题】:Why should one use pure TensorFlow over Keras?为什么要在 Keras 上使用纯 TensorFlow?
【发布时间】:2018-11-10 20:50:39
【问题描述】:

最近我正在观看 TensorFlow 的介绍,在该课程中,Keras 提出了一个高级 API,可以在后端使用 TensorFlow 或 Theano。

我对它们都进行了尝试,并使用第一个纯 TensorFlow 和 Keras 进行了 MNIST LeNet-5 实现。至少在我的机器上,当直接使用 TensorFlow 时,我并没有看到任何显着的性能提升。

所以我现在的问题是:直接使用 TensorFlow 而不是 Keras 有什么优势?也许这是规模问题,我会看到大型项目的性能显着提升吗?

【问题讨论】:

    标签: tensorflow deep-learning keras


    【解决方案1】:

    Keras 只是隐藏了 Tensorflow(和其他后端)的复杂性,仅此而已。

    如果您需要/想要更好地控制幕后发生的事情,您可以直接使用 Tensorflow(您可以控制几乎所有内容,并且可以确保您的实现有效地完成了您想要的操作)。

    如果您只想快速制作原型并开发模型,那么 Keras 很好,因为它可以更快地完成。权衡是你失去了一些控制,因为 Keras 为你做了很多你不会做的事情。例如,您不能更改卷积层的变量名称/范围,因为它们在 keras 层定义中是固定的(内核将始终是“内核”,而偏差将始终是“偏差”)。

    但是,由于 Tensorflow 是先构建图再执行,所以在 Keras 或 Tensorflow 中定义的同一个图的执行速度是一样的(Keras 只会减慢图的构建,那只是 Python 代码)。

    更新:从 Tensorflow 2.0 开始,默认使用 tf.keras: https://pgaleone.eu/tensorflow/gan/2018/11/04/tensorflow-2-models-migration-and-new-design/

    【讨论】:

    • 感谢您的回答。有没有关于 Keras 不能做的事情的资源,但只能用纯 Tensorflow?具有深度学习的范围而不是一般的图形计算?我试图找出是否值得深入 Tensorflow,或者我留在 Keras 是否可以。
    猜你喜欢
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2021-04-04
    • 2020-12-09
    • 1970-01-01
    • 2018-03-12
    • 2018-11-26
    相关资源
    最近更新 更多