【问题标题】:Using Instance Keys for Batch Prediction w/Tensorflow使用实例键进行批量预测 w/Tensorflow
【发布时间】:2018-11-23 09:38:06
【问题描述】:

我正在尝试弄清楚如何使用 Google Cloud 进行批量预测。具体来说,我正在寻找对象检测,从更快的 RCNN tensorflow ckpt 到图形/保存模型。

我的问题是我需要能够为我的输入图像恢复某种 ID,可能是索引或文件名。我不完全确定在我的情况下如何做到这一点,因为this link 提到使用实例键,而我发现的关于实例键的唯一relevant examples 使用 JSON 作为输入格式。由于我应该使用 TFRecords 输入我保存的模型,这似乎是一个问题。我也咨询了prediction guide,但还是一头雾水。

简而言之,是否有人对我应该编辑哪些文件(export_inference_graph.py?)以保留我的输入图像的某种索引/排序以进行批量预测有任何提示?我正在使用 Object Detection API 作为参考。谢谢!

【问题讨论】:

    标签: json tensorflow google-cloud-platform google-cloud-ml tfrecord


    【解决方案1】:

    批量预测本身不支持实例键。您必须更改推理图以从输入中输出某些内容作为键。这意味着您需要找到一种在输入中包含键的方法,例如图像 ID 或索引。一种方法是将输入从 TFrecord 更改为 json 并添加一个 id 作为键。例如,您现在的输入将是:

    {"key": 1, "image": {"b64": "base64encodedstringabce"} {"key": 2, "image": {"b64": "base64encodedstringfg1d"}

    这当然会使您的输入更大。另一种方法是,如果您在 TFRecord 中使用 tf.Example proto,您可以添加额外的功能。它的值将是从输入到输出的传递字段。

    这是一种更改推理以将特征从输入传递到输出的方法。 https://github.com/GoogleCloudPlatform/cloudml-samples/pull/158

    【讨论】:

    • 感谢您的快速回复。为了澄清,根据指南here 的“预测输入”部分判断,我只有一个输入张量可以使用。因此,似乎我需要将输入张量的数量更改为两个来处理带有键的 json 或 tfrecord;你知道我会如何为对象检测推理图做到这一点吗?
    • 是的,你是对的。不确定“对象检测推理图”是什么意思。它是弦张量吗?如果是这样,请按照我的答案进行操作。否则,你看看上面显示的 PR。
    • 对象检测 API 保存的模型/冻结图再次只有一个(字符串?)输入张量,指定为 here。您的示例似乎涉及很多 csv 内容,我不确定这与我正在做的事情是否相关。基本上,因为它现在可以工作,我的模型只接受我的输入图像的一批 base64 编码版本,而不接受其他信息(即没有键);如果您能解释您的解决方案如何转化为这一点,我将不胜感激。
    • 好的,忘了提到我找到了一种方法,可以通过 github 上的某人的笔记本来完成。不过,非常感谢您的帮助!
    • @ChrisCollins 如果您能将解决方案也发布给其他遇到此问题的人,那就太好了?
    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2019-08-09
    相关资源
    最近更新 更多