tensorflow2.0中引入keras和原来的keras的差异
1. 之前介绍过在tensorflow roadshow中介绍了tensorflow2.0的新特性,但是并未进行具体介绍,本文主要介绍tf中keras和原来的keras的差异。
2. tf.keras可以方便的构建我们需要的模型,主要的改变是将原来的tf.nn.xxx替换成了tf.keras.
区别:
1. tf.keras全面支持tensorflow的eager execution模式。当然,在代码中通过eager模式可以反应当前的梯度等,可能认为这个梯度会影响我们代码的运行效率,但是Eager execution相对于graph mode的性能劣势,通过tf.function的imperative-to-graph变换来弥补。
2. tf.keras支持基于tf.data的模型训练。基于lazy范式、使用了多线程数据输入管路,tf.data可以显著提高模型训练的效率。tf.keras.Mode.fit()
直接支持tf.data.Dataset
或iterator
对象作为输入参数
3.tf.keras支持TPU训练。由于TPU是Google自己研发的,因此我们可以将其把keras的优秀特性集成到tf,然后通过TPU完成加速。`tf.contrib.tpu.keras_to_tpu_model()`将一个tf.keras.Model
对象转换成一个可以在TPU上进行训练的模型对象。
4.tf.contrib.saved_model.save_keras_model()可以将模型保存为tensorflow的SavedModel格式。
两者在语法上,在共同点上有很多,基于同一个API:如果不使用tf.keras的特有特性(见下文)的话,模型搭建、训练、和推断的代码应该是可以互换的。把import keras
换成from tensorflow import keras
,所有功能都应该可以工作。反之则未必,因为tf.keras有一些keras不支持的特性。
参考:https://www.zhihu.com/question/313111229/answer/606660552
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)