最近我正在观看TensorFlow的介绍,在那个过程中,Keras成为了一个高级API,可以在后端使用TensorFlow或Theano。
我和他们两个一起玩,并用第一个纯TensorFlow进行了MNIST LeNet-5实现,之后用Keras进行了实现。至少在我的机器上,当直接使用TensorFlow时,我无法看到任何显着的性能提升。
所以现在我的问题是:使用TensorFlow直接比Keras有什么好处?也许这是一个规模问题,我是否会看到大规模项目的性能显着提升?
答案 0 :(得分:6)
Keras只是隐藏了Tensorflow(和其他后端)的复杂性,这就是全部。
如果您需要/想要更好地控制幕后发生的事情,您可以直接使用Tensorflow(您几乎可以控制所有内容,并且可以确保您的实施有效地执行您想要的操作)。 / p>
如果您只想快速制作原型并开发模型,那么Keras很好,因为它可以更快地完成。权衡的是你放松了一点控制权,因为Keras为你做了很多你不会做的事情。例如,您无法更改卷积层的变量名称/范围,因为它们在keras层定义中是固定的(内核始终是'内核'偏差始终为' 39;偏压&#39)
。然而,由于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/