![1f1cb3198a329927a48c16510654c2e0.png](https://img-blog.csdnimg.cn/img_convert/1f1cb3198a329927a48c16510654c2e0.png)
在阅读该篇文章之前,建议先阅读该系列文章的上一篇 蓝色:使用TVM支持TFLite(上),并希望按照上篇文章末尾所提供的文档链接,成功编译安装了TVM。若没有任何问题,你打开Python3以后,import tvm,不应该有任何报错,如下图所示:
![8fa85948d45f13b252879f7c472e5f04.png](https://img-blog.csdnimg.cn/img_convert/8fa85948d45f13b252879f7c472e5f04.png)
让TVM支持TFLite的准备工作
在这一步以后,我们若要让TVM支持运行TFLite模型,我们还需要两个Python安装包:
- Flatbuffers
- TFLite
因为TFLite的模型是Flatbuffer格式,所以我们需要使用安装Flatbuffers来负责解析模型。而第二个TFLite包是我们解析TFLite模型时,我们需要获取到TFLite算子的各种参数信息,如卷积的Padding,Stride等。
第一个安装很简单,仅需要使用pip3 install flatbuffers即可。第二个安装没有pip安装包提供,但是你可以使用我这里的git仓库,该仓库也有详细说明如何安装使用:FrozenGene/tflite
这一切做好以后,你导入flatbuffers / tflite包不应该再有问题。
![9d07833f9fcfcab62546c02ba993d393.png](https://img-blog.csdnimg.cn/img_convert/9d07833f9fcfcab62546c02ba993d393.png)
这一步做完以后,你所需要的工作即已完成。
使用TVM运行TFLite模型
接下来则到了我们使用TVM运行TFLite模型的时候了。在上文提到了你需要打上这一个支持TFLite的PR:[TFLite] Support TFLite FP32 Relay frontend. by FrozenGene · Pull Request #2365 · dmlc/tvm 但是很幸运的是,该PR在写这篇文章的时候已经被Merge进去了,所以现在你只需要更新最新的Master分支代码即可,而且大家看到的该篇文章也是最先看到如何让TVM运行TFLite模型的教程或者说资料,因为我还没有书写英文版的Tutorial进入TVM,所以若有建议也可以反馈给我,帮助我后面书写更好的英文的Tutorial,同时也欢迎对TVM社区目前的文档做的不好的地方提出你的意见:[RFC] Developer Documentation Feedbacks · Issue #2469 · dmlc/tvm 谢谢!
在蓝色:使用TVM支持TFLite(上)时,也讲到了我们需要对图片进行预处理,所以让我们首先如图之前一样的处理:
from PIL import Image
import numpy as np
def preprocess_image(image_file):
resized_image = Image.open(image_file).resize((224, 224))
image_data =