如何在谷歌云平台上运行预测时减少掩码RCNN训练模型的输入大小



我正在尝试使用Google AI平台预测来使用Mask RCNN执行对象识别。在花了将近两周的时间后,我能够:

  1. 了解如何在谷歌云上进行培训
  2. 将模型从h5转换为AI平台所需的SavedModel格式
  3. 创建AI平台模型,并在那里部署经过训练的模型

现在,我正在尝试执行预测,它说我的输入大小超过了1.5 MB,这是输入的最大大小。当我检查它时,将图像(大小为65KB(转换为预测所需格式的代码使输入文件为57MB。

我不知道如何在成型时将64KB的图像文件转换为57MB的json文件。我想知道如何减少这种情况?不确定我是否做错了什么。

我已经尝试使用gcloud本地预测执行本地预测,并且我能够使用57MB文件获得响应。因此,这意味着该文件是正确的。

我试图将图像的最大尺寸设置为400X400,这将文件的大小从57MB减少到了7MB左右。这仍然非常高。我不能一直减少它,因为它会导致信息丢失。

根据在线预测文档

二进制数据不能格式化为JSON支持的UTF-8编码字符串。如果你的输入中有二进制数据,你必须使用base64编码来表示它

你需要有一个名为input_image_bytesinput_image张量,你会像这样发送数据:

{'input_image_bytes': {'b64': base64.b64encode(jpeg_data).decode()}}

如果您需要更正模型输入的帮助,您应该在exporter.py中看到从export_inference_graph.py 调用的def _encoded_image_string_tensor_input_placeholder()

最新更新