keras 和 tf.keras 有什么区别?
What is the difference between keras and tf.keras?
我正在学习 TensorFlow 和 Keras。想试试https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438/,好像是用Keras写的
将代码转换为 tf.keras
是否相当简单?
我更感兴趣的不是代码的可移植性,而是两者之间的真正区别。
此时 tensorflow 几乎完全采用了 keras API 并且有一个很好的理由 - 它简单、易于使用且易于学习,而 "pure" tensorflow 带有很多样板代码。是的,您可以毫无问题地使用 tf.keras,尽管您可能需要在代码中重新导入。例如
from keras.layers.pooling import MaxPooling2D
会变成:
from tensorflow.keras.layers import MaxPooling2D
tf.keras 和 keras 之间的区别是 Tensorflow 特定于框架的增强。
keras
是一个 API 规范,描述了深度学习框架应如何实现与模型定义和训练相关的特定部分。
与框架无关并支持不同的后端(Theano、Tensorflow 等)
tf.keras
是 Keras API 规范的 Tensorflow 特定实现。它为框架添加了对许多 Tensorflow 特定功能的支持,例如:完美支持 tf.data.Dataset
作为输入对象,支持即时执行,...
在 Tensorflow 2.0 中,tf.keras
将是默认值,我强烈建议使用 tf.keras
开始工作
Keras 与 tf.keras 的历史漫长而曲折。
Keras:Keras 是 high-level(易于使用)API,由 Google AI Developer/Researcher 构建,弗朗索瓦·肖莱。用 Python 编写,能够 运行 在 TensorFlow、CNTK 或 Theano 等后端引擎之上。
TensorFlow:同样由 Google 开发的库,用于深度学习开发者社区,使深度学习应用程序可访问和使用 public .开源并可在 GitHub.
上使用
随着 Keras v1.1.0 的发布,Tensorflow 成为默认后端引擎。这意味着:如果您在系统上安装了 Keras,那么您也在安装 TensorFlow。
后来,在 TensorFlow v1.10.0 中,Tensorflow 首次引入了 tf.keras 子模块。 在 TensorFlow 中集成 Keras 的第一步
随着 Keras 2.3.0 的发布,
- Keras 的第一个版本与 tf.keras
同步
- 支持其他 multi-backend 引擎的最后一个主要版本
- 最重要的是,展望未来,建议将代码从 keras 切换到 Tensorflow2.0 和 tf.keras 包。
请参考 François Chollet 的 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
。
我正在学习 TensorFlow 和 Keras。想试试https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438/,好像是用Keras写的
将代码转换为 tf.keras
是否相当简单?
我更感兴趣的不是代码的可移植性,而是两者之间的真正区别。
此时 tensorflow 几乎完全采用了 keras API 并且有一个很好的理由 - 它简单、易于使用且易于学习,而 "pure" tensorflow 带有很多样板代码。是的,您可以毫无问题地使用 tf.keras,尽管您可能需要在代码中重新导入。例如
from keras.layers.pooling import MaxPooling2D
会变成:
from tensorflow.keras.layers import MaxPooling2D
tf.keras 和 keras 之间的区别是 Tensorflow 特定于框架的增强。
keras
是一个 API 规范,描述了深度学习框架应如何实现与模型定义和训练相关的特定部分。
与框架无关并支持不同的后端(Theano、Tensorflow 等)
tf.keras
是 Keras API 规范的 Tensorflow 特定实现。它为框架添加了对许多 Tensorflow 特定功能的支持,例如:完美支持 tf.data.Dataset
作为输入对象,支持即时执行,...
在 Tensorflow 2.0 中,tf.keras
将是默认值,我强烈建议使用 tf.keras
Keras 与 tf.keras 的历史漫长而曲折。
Keras:Keras 是 high-level(易于使用)API,由 Google AI Developer/Researcher 构建,弗朗索瓦·肖莱。用 Python 编写,能够 运行 在 TensorFlow、CNTK 或 Theano 等后端引擎之上。
TensorFlow:同样由 Google 开发的库,用于深度学习开发者社区,使深度学习应用程序可访问和使用 public .开源并可在 GitHub.
上使用随着 Keras v1.1.0 的发布,Tensorflow 成为默认后端引擎。这意味着:如果您在系统上安装了 Keras,那么您也在安装 TensorFlow。
后来,在 TensorFlow v1.10.0 中,Tensorflow 首次引入了 tf.keras 子模块。 在 TensorFlow 中集成 Keras 的第一步
随着 Keras 2.3.0 的发布,
- Keras 的第一个版本与 tf.keras 同步
- 支持其他 multi-backend 引擎的最后一个主要版本
- 最重要的是,展望未来,建议将代码从 keras 切换到 Tensorflow2.0 和 tf.keras 包。
请参考 François Chollet 的 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
。