TensorFlow和keras的前世今生以及keras和tf.keras的对比
分类:
文章
•
2024-02-19 13:22:40
一,Keras和TensorFlow的历史纠葛

- Keras 最初是由 Google AI 开发人员/研究人员 Francois Chollet 创建,并于 2015 年 3 月 27 日将 Keras 的第一个版本 commit 并 release 到他的 GitHub。
- TensorFlow 从 Keras v1.1.0 发行版开始成为 Keras 的默认后端(在 v1.1.0 之前,Keras 的默认后端都是 Theano)。
- tf.keras 在 TensorFlow v1.10.0 中被引入TensorFlow中。
- 谷歌在 2019 年 6 月发布 TensorFlow 2.0,并宣布 Keras 现在是 TensorFlow 的官方高级 API。随后 Keras 2.3.0 的发布,Francois 声明:
- 这是 Keras v2.3.0 是首个与 tf.keras 同步的版本;
- 这也将是最后一个支持除 TensorFlow 以外的后端(即 Theano,CNTK 等)的最终版本。
- 最重要的是,所有深度学习从业人员都应将其代码转换成 TensorFlow 2.0 和 tf.keras 软件包。原始的 keras 软件包仍会接收 bug 并修复。

二,keras和tf.keras简介
1,keras简介
- 基于python的高级神经网络API
- Francois Chollet于2014-2015年编写Keras
- 以Tensorflow、CNTK或者Theano为后端运行,keras必须有后端才可以运行
- 极方便于快速实验,帮助用户以最少的时间验证自己的想法
2,tf.keras简介
- Tensorflow对keras API规范的实现
- 相对于以tensorflow为后端的keras,Tensorflow-keras与Tensorflow结合更加紧密
- 实现在tf.keras空间下
三,keras和tf.keras的区别
- Tf.keras全面支持eager mode
- 只是用keras.Sequential和keras.Model时没有影响
- 自定义Model内部运算逻辑的时候会有影响
- Tf低层API可以使用keras的model.fit等抽象
- 适用于研究人员
- Tf.keras 支持基于tf.data的模型训练
- Tf.keras 支持TPU训练
- Tf.keras 支持tf.distribution的分布式策略
四,keras和tf.keras的联系
- 基于同一套API
- keras程序可以通过改导入方式轻松转为tf.keras程序
- 反之可能不成立,因为tf.keras有其他特性
- 相同的JSON和HDF5模型序列化格式和语义