Path: blob/master/site/zh-cn/model_optimization/guide/quantization/training_example.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Keras 中的量化感知训练示例
概述
欢迎阅读量化感知训练的端到端示例。
其他页面
有关量化感知训练的定义以及如何确定是否应使用量化感知训练(包括支持的功能)的介绍,请参阅概述页面。
要快速找到您的用例(不局限于使用 8 位完全量化模型)所需的 API,请参阅综合指南。
摘要
在本教程中,您将:
从头开始为 MNIST 训练一个
tf.keras
模型。通过应用量化感知训练 API 来微调模型,查看准确率并导出量化感知模型。
使用该模型为 TFLite 后端创建一个实际量化模型。
查看 TFLite 中的准确率持久性和大小缩减至四分之一的模型。要看到在移动设备上的延迟优势,请尝试 TFLite 应用存储库中的 TFLite 示例。
设置
在不使用量化感知训练的情况下为 MNIST 训练模型
使用量化感知训练克隆和微调预训练模型
定义模型
将量化感知训练应用于整个模型,然后在模型摘要中查看。现在,所有层都带有前缀“quant”。
请注意,生成的模型可感知量化,但没有量化(例如权重为 float32 而不是 int8)。后面的部分说明了如何从量化感知模型创建量化模型。
在综合指南中,您可以看到如何量化某些层来提高模型准确率。
根据基准训练和评估模型
为了在仅训练一个周期后便可演示微调,我们基于训练数据的一个子集来使用量化感知训练进行微调。
对于本示例,与基准相比,量化感知训练后的测试准确率损失极小,甚至没有损失。
为 TFLite 后端创建量化模型
之后,您将获得一个具有 int8 权重和 uint8 激活的实际量化模型。
查看从 TF 到 TFLite 的准确率持久性
定义一个辅助函数,基于测试数据集评估 TFLite 模型。
评估量化模型后,您将看到从 TensorFlow 持续到 TFLite 后端的准确率。
查看量化后大小缩减至四分之一的模型
创建一个浮点 TFLite 模型,随后会看到量化 TFLite 模型的大小缩减至原来的四分之一。
结论
在本教程中,您了解了如何使用 TensorFlow Model Optimization Toolkit API 创建量化感知模型,以及随后如何为 TFLite 后端创建量化模型。
您看到了为 MNIST 创建一个大小缩减至四分之一且准确率差异最小的模型后带来的优势。要查看在移动设备上的延迟优势,请尝试 TFLite 应用存储库中的 TFLite 示例。
我们鼓励您试用这项新功能,这对于在资源受限的环境中进行部署特别重要。