keras和tf.keras有什么区别?

时间:2019-03-15 08:14:59

标签: keras tf.keras

我正在学习tf和keras。

我想尝试https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438/,它似乎是用keras编写的。

将代码转换为tf.keras会很直接吗?

我对portability代码并不感兴趣,而不是两者之间的真正区别。

3 个答案:

答案 0 :(得分:2)

Keras Vs tf.keras的历史悠久而曲折。

Keras :Keras是由Google AI开发人员/研究人员Francois Chollet构建的高级(易于使用)API。用Python编写,能够在TensorFlow,CNTK或Theano等后端引擎之上运行。

TensorFlow :也是由Google为深度学习开发者社区开发的一个库,用于使深度学习应用程序可访问并可供公众使用。开源且可在GitHub上获得。

随着Keras v1.1.0的发布,Tensorflow成为默认的后端引擎。这意味着:如果您在系统上安装了Keras,那么您还将安装TensorFlow。

后来,在TensorFlow v1.10.0中,首次在tensorflow中引入了tf.keras子模块。 将Keras集成到TensorFlow中的第一步

随着Keras 2.3.0的发布,

  • 与tf.keras同步发布的Keras的第一个版本
  • 支持其他多后端引擎的主要发行版
  • 最重要的是,建议将代码从keras切换到Tensorflow2.0和tf.keras软件包。

请参阅FrançoisChollet的this推文,以使用tf.keras。

这意味着, 随处更改

来自

from keras.models import Sequential
from keras.models import load_model

收件人

from tensorflow.keras.models import Sequential
from tensorflow.keras.models import load_model

然后在requirements.txt中

tensorflow==2.3.0

*免责声明:如果您使用的是Keras的旧版本,则可能会产生冲突。在这种情况下,请执行pip uninstall keras

答案 1 :(得分:1)

tf.keras和keras之间的区别是该框架的Tensorflow特定增强。

keras是一个API规范,描述了深度学习框架应如何实现与模型定义和培训相关的特定部分。 与框架无关,并支持不同的后端(Theano,Tensorflow等)

tf.keras是Keras API规范的Tensorflow特定实现。它为该框架添加了对许多Tensorflow特定功能的支持,例如:完美支持tf.data.Dataset作为输入对象,对急切执行的支持,...

在Tensorflow 2.0中,tf.keras是默认设置,我强烈建议开始使用tf.keras

答案 2 :(得分:0)

在这一点上,tensorflow几乎完全采用了keras API,这有一个很好的理由-它简单,易用且易于学习,而“纯” tensorflow带有许多样板代码。是的,您可以使用tf.keras而不会出现任何问题,尽管您可能必须重新编写代码中的导入。例如

from keras.layers.pooling import MaxPooling2D

将变成:

from tensorflow.keras.layers import MaxPooling2D