云在线预测重播请求有效负载大小超出限制:1572864字节

时间:2019-03-19 16:58:19

标签: python tensorflow google-cloud-storage google-cloud-ml

我使用tensorflow训练了图像分类器,并将其部署到Google Cloud,现在我正尝试使用以下代码进行在线预测:

    service = googleapiclient.discovery.build('ml','v1')
name = 'projects/{}/models/{}'.format("project_name","model_name")


image = img_to_array(load_img('path/to/image/image.jpg', target_size=(299,299))) / 255.


payload = {
  "instances": [{'image': image.tolist()}]
}


response = service.projects().predict(
    name=name,
    body=payload).execute()

if 'error' in response:
    raise RuntimeError(response['error'])

print(response['predictions'])

我在几篇文章中看到,我需要将请求另存为json文件到云存储中,然后从那里调用以进行预测并避免超出限制的问题。我还读到,这只能通过批量预测来实现。

是否有解决方法,还是应该放弃并使用批量预测?任何信息都非常感谢。

2 个答案:

答案 0 :(得分:0)

不幸的是,没有解决方法。您将必须使用批次预测。

但是,如果您找到其他方法,请在此处分享!

答案 1 :(得分:0)

您可以将图像作为Google Cloud Storage URL传递,然后传递。为此,您必须更改默认的服务函数以将输入作为imageUrl而不是张量或列表。