最近,我正在观看TensorFlow的介绍,在此过程中,Keras作为一种高级API出现了,可以在后端使用TensorFlow或Theano。
我与他们一起玩耍,并使用第一个纯TensorFlow进行了MNIST LeNet-5实施,此后又使用Keras。至少在我的机器上,当直接使用TensorFlow时,我看不到任何明显的性能提升。
所以我现在的问题是:直接在Keras上使用TensorFlow有什么优势?也许这只是规模问题,我是否会在大型项目中看到性能的显着提高?
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/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句