Tensorflow教程笔记
-
基础
TensorFlow 基础
TensorFlow 模型建立与训练
基础示例:多层感知机(MLP)
卷积神经网络(CNN)
循环神经网络(RNN)
深度强化学习(DRL)
Keras Pipeline
自定义层、损失函数和评估指标
常用模块 tf.train.Checkpoint :变量的保存与恢复
常用模块 TensorBoard:训练过程可视化
常用模块 tf.data :数据集的构建与预处理
常用模块 TFRecord :TensorFlow 数据集存储格式
常用模块 tf.function :图执行模式
常用模块 tf.TensorArray :TensorFlow 动态数组
常用模块 tf.config:GPU 的使用与分配 -
大规模训练与加速
TensorFlow 分布式训练
使用 TPU 训练 TensorFlow 模型 -
附录
强化学习基础简介
为了将训练好的机器学习模型部署到各个目标平台(如服务器、移动端、嵌入式设备和浏览器等),我们的第一步往往是将训练好的整个模型完整导出(序列化)为一系列标准格式的文件。在此基础上,我们才可以在不同的平台上使用相对应的部署工具来部署模型文件。TensorFlow 提供了统一模型导出格式 SavedModel
,使得我们训练好的模型可以以这一格式为中介,在多种不同平台上部署,这是我们在 TensorFlow 2 中主要使用的导出格式。同时,基于历史原因,Keras 的 Sequential
和 Functional
模式也有自有的模型导出格式,我们也一并介绍。
使用 SavedModel 完整导出模型
在前节中我们介绍了 Checkpoint,它可以帮助我们保存和恢复模型中参数的权值。而作为模型导出格式的 SavedModel
则更进一步,其包含了一个 TensorFlow 程序的完整信息:不仅包含参数的权值,还包含计算的流程(即计算图)。当模型导出为 SavedModel
文件时,无须模型的源代码即可再次运行模型,这使得 SavedModel
尤其适用于模型的分享和部署。后文的 TensorFlow Serving(服务器端部署模型)、TensorFlow Lite(移动端部署模型)以及 TensorFlow.js 都会用到这一格式。
Keras 模型均可方便地导出为 SavedModel
格式。不过需要注意的是,因为 SavedModel 基于计算图,所以对于使用继承 tf.keras.Model
类建立的 Keras 模型,其需要导出到 SavedModel 格式的方法(比如 call
)都需要使用 @tf.function
修饰( @tf.function
的使用方式见 前文 )。然后,假设我们有一个名为 model
的 Keras 模型,使用下面的代码即可将模型导出为 SavedModel
: