16

我正在学习 TensorFlow 和 Keras。我想试试https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438/,它似乎是用 Keras 编写的。

将代码转换为 是否相当简单tf.keras

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

4

3 回答 3

25

tf.keras 和 keras 的区别在于框架的 Tensorflow 特定增强。

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

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

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

于 2019-03-15T08:48:53.877 回答
14

在这一点上,tensorflow 几乎完全采用了 keras API,这是有充分理由的 - 它简单、易于使用且易于学习,而“纯” tensorflow 带有大量样板代码。是的,您可以毫无问题地使用 tf.keras,尽管您可能需要重新处理代码中的导入。例如

from keras.layers.pooling import MaxPooling2D

会变成:

from tensorflow.keras.layers import MaxPooling2D
于 2019-03-15T08:38:29.873 回答
5

Keras Vs tf.keras 的历史漫长而曲折。

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

TensorFlow:同样由谷歌为深度学习开发者社区开发的一个库,用于使深度学习应用程序可供公众访问和使用。开源并在 GitHub 上可用。

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

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

随着 Keras 2.3.0 的发布,

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

请参考François Chollet 的这条推文以使用 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

于 2020-08-21T05:41:32.640 回答