将预训练的张量流模型转换为张量流服务

时间:2019-11-03 13:59:51

标签: python tensorflow tensorflow-serving

我正在尝试使用张量流服务。但是,任何可供下载的经过预训练的模型(例如从此处:the TF detection zoo)在服务模型所需的saved_models/variables目录中都没有任何文件。

如何使用检测模型库中可用的预训练模型来创建saved_models/variables目录中所需的文件?

有一些信息from the official documentation,但是它并不涵盖我转换要提供的预训练模型的用例。

我尝试过的其他事情是使用tensorflow服务示例。但是,大多数现有文档都以Resent实现为例,并且Tensorflow已删除了resnet的预训练模型。 This is the linked that tutorials use,请注意,没有直接链接可下载模型。顺便提一下,Tensorflow服务回购中的python示例不适用于Tensorflow 2.0。

此链接似乎在转换中很有用:https://github.com/tensorflow/models/issues/1988

1 个答案:

答案 0 :(得分:0)

好的,截至编写本文时,对象检测教程仅支持tensorflow 1.12.0。

要做到这一点有点困难,因为它是如此多层,但是您需要:

  1. 克隆张量流开放模型动物园
  2. 根据these instructions修补models/research/object_detection/exporter.py。或者,您可以使用上述说明中的this patch
  3. 在克隆的存储库中按照对象found here的内容进行安装。遵循protobuf compilation steps并更新python path for the slim libraries很重要。
  4. 按照exporting a trained model for inference的说明进行操作。请注意,指令中重要的重要部分是下载的模型将带有三个model.ckpt文件名。需要传递到导出脚本中的文件名是这三个文件名的基本文件名。因此,如果三个文件分别为/path/to/model.ckpt.data-00000-of-00001/path/to/model.ckpt.meta/path/to/model.ckpt.index,则传递给脚本的参数为:/path/to/model.ckpt
  5. 享受您的新模型!