2.4.3 使用模型进行推断
推断是通过模型运行数据以获得预测的过程。这个过程需要模型、解释器和输入数据。
1.TensorFlow Lite解释器
TensorFlow Lite解释器是一个库,该库会接收模型文件,执行它对输入数据定义的运算,并提供对输出的访问。该解释器适用于多个平台,提供了一个简单的API,用于在Java、Swift、Objective-C、C++和Python程序中运行TensorFlow Lite模型。例如,下面的代码演示了从Java程序调用解释器的过程。
2.GPU加速和委托
在现实应用中,很多设备为机器学习运算提供了硬件加速,如手机GPU能够比CPU更快地执行浮点矩阵运算,而且这种速度的提升效果可能会非常可观。例如,当使用GPU加速时,MobileNet v1图像分类模型在Pixel 3手机上的运行速度能够提高5.5倍。
在使用TensorFlow Lite解释器时可以配置委托,以利用不同设备上的硬件加速。GPU委托允许解释器在设备的GPU上运行适当的运算。例如,下面的代码展示了在Java程序中使用的GPU委托的方法。
如果要添加对新硬件加速器的支持,开发者可以自定义委托。
3.Android和iOS
在Android和iOS移动平台中,可以非常容易地使用TensorFlow Lite解释器。在开始使用时需要先准备所需的库:Android开发人员应该使用TensorFlow Lite AAR;iOS开发人员应该使用CocoaPods for Swift or Objective-C。
4.微控制器
用于微控制器的TensorFlow Lite是TensorFlow Lite的实验性端口,主要针对只有千字节内存的微控制器和其他设备。
5.运算符
如果模型需要尚未在TensorFlow Lite中实现的TensorFlow运算,则可以使用TensorFlow Select在模型中使用它们,此时需要构建一个包括该TensorFlow运算的自定义版本解释器。开发者可以自定义运算符,或者将新运算符移植到TensorFlow Lite中。