要在本地机器上运行 tflite 转换器,您需要 bazel 和 toco。
如果你在 GitHub 中阅读了一些问题,在某些版本的 Tensrflow 中,tflite 会造成很多麻烦。为了克服这个问题,有人建议使用 tf-nightly!
为避免这一切,只需使用 Google Colab 将您的 .pb 转换为 .lite 或 .tflite。
自从 Colab 开始提供用于将文件上传到当前内核的“上传”选项,我认为这是最简单的方法,无需担心其他包及其依赖项。
这是相同的代码:
from google.colab import drive
drive.mount('/content/drive')
!cd drive/My\ Drive
from google.colab import files
pbfile = files.upload()
import tensorflow as tf
localpb = 'frozen_inference_graph_frcnn.pb'
tflite_file = 'frcnn_od.lite'
print("{} -> {}".format(localpb, tflite_file))
converter = tf.lite.TFLiteConverter.from_frozen_graph(
localpb,
["image_tensor"],
['detection_boxes']
)
tflite_model = converter.convert()
open(tflite_file,'wb').write(tflite_model)
interpreter = tf.lite.Interpreter(model_content=tflite_model)
interpreter.allocate_tensors()
"""**download optimized .lite file to local machine**"""
files.download(tflite_file)
您可以通过两种方式将 .pb 文件上传到当前会话:
i) (简单的方法) 运行上述笔记本中的第一个单元后,将安装驱动器。因此,在屏幕左侧转到文件列,然后右键单击要上传 .pb 文件的文件夹并选择上传。
然后使用“ls”和“cd”命令进入文件夹并运行 tflite 转换器单元。
ii) 使用 files.upload() 命令运行单元并单击浏览并从本地计算机中选择 .pb 文件。
上传文件后,将其路径提供给变量“localpb”以及 .lite 模型的名称。然后只需运行具有“TFLiteConverter”命令的单元格。
然后瞧。您的驱动器中应该有一个 tflite 模型。只需右键单击它并下载到本地计算机即可运行推理。