tensorflowLite是google推出的一个端侧深度学习模型、推理框架,关注业务本身模型的优化。tensorflowlite缩写简称tflite。
本章覆盖的知识点:
**特性:**轻量化、低延迟、隐私保护、高效模型、功耗节能、预训练模型。
TensorFlow lite的组件:
转换器(to TensorFlow lite format):将Tensorflow模型,转换为可被解释器有效可读的形式。引入优化功能,以提高二进制大小模型的性能和减少模型大小。
解释器(Core):支持多种平台(Android.iOS、嵌入式Linux和微控制器),用于加速推理的平台API。
架构:
性能:
tensorflow lite 支持采用一些设备的加速库或者API来加速任务的执行。
TensorFlow Lite Delegates加速方式:
它为tflite 提供了一下计算专用模型推理算子的接口,比如:GPU、DSP,在这个tflite运行推理时,计算图会根据算子的Detegates的实际情况为不同的硬件分配任务,从而实现局部的算子加速。为此tflite还提供了一个支持实验性的delegates,它可以在GPU上加速模型。
具体内容链接:https://tensorflow.google.cn/lite/performance/gpu
关键技术:
量化是指我原来有一般的神经网络,它用的是浮点数运算,当然也可以是低精度的八浮点位或16位的定点进行加速。
剪枝它能把模型的体积变得更小,利用了稀疏表示的方法实现把冗余的节点去掉。
为什么要进行量化处理?
转换流程:
前面课程里我们了解了tensorflow lite 的一些优点特性,它能够帮助我们在移动终端或者低功耗、嵌入式设备上运行机器学习,并且还提供了模型转换和优化的工具,这节我们将进一步了解tflite 转换工具,怎么把模型从tensorflow转换成tf lite的格式以及如何在转换过程中做一些简单的模型优化。
基本的转化流程:
先在tensorflow开发环境中训练出一个机器学习模型,并准备部署这个环境时往往会将模型以saved model的这种格式进行存储,然后我们tf lite converter 这个工具将模型转化到tf lite 的模型格式上,就可以在移动端的tf框架中运行这些模型。
模型转换的基本框架:
两种不同类型机器学习的搭建接口:
一种是基于tf.Keras的高阶API,这套接口对算子的封装颗粒度比较大,适合快速验证训练环境对模型的影响的场景。
另一种是原生的底层的tensorflow的Api,这种api适合于对模型的层次修改比较深的场景。
对这两种接口提供了统一的模型格式Savedmodel,有利于将网络嵌套到任意的搭建的网络模型中。
参数转换接口:
在tensorflow 中使用python搭建机器学习模型时,能够使用的模型参数和转换的函数接口,支持以上三种不同的格式转换。
SavedModel
命令行的转换方式:
Example 3:
预测图片链接:https://medium.com/tensorflow/introducing-the-model-optimization-toolkit-for-tensorflow-254aca1ba0a3
代码如下:
转换流程:
Calibration进行量化。
TF-Select:
学习链接:https://tensorflow.google.cn/lite/guide/ops_select
验证转化后的模型是否有效: