我使用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文件到云存储中,然后从那里调用以进行预测并避免超出限制的问题。我还读到,这只能通过批量预测来实现。
是否有解决方法,还是应该放弃并使用批量预测?任何信息都非常感谢。
答案 0 :(得分:0)
不幸的是,没有解决方法。您将必须使用批次预测。
但是,如果您找到其他方法,请在此处分享!
答案 1 :(得分:0)
您可以将图像作为Google Cloud Storage URL传递,然后传递。为此,您必须更改默认的服务函数以将输入作为imageUrl而不是张量或列表。