3

在本教程之后,我设法使用通用初始模型重新训练我的特定分类模型。我现在想按照这个步骤将它部署在谷歌云机器学习上。

我已经设法将它导出为 MetaGraph,但我无法获得正确的输入和输出。

在本地使用它,我的图表入口点是DecodeJpeg/contents:0一个二进制格式的 jpeg 图像。输出是我的预测。

我在本地使用的代码(正在工作)是:

softmax_tensor = sess.graph.get_tensor_by_name('final_result:0')
predictions = sess.run(softmax_tensor,{'DecodeJpeg/contents:0': image_data})

输入张量应该是DecodeJpeg? 如果我想有一个base64 image作为输入,我需要做些什么改变?

我将输出定义为:

outputs = {'prediction':softmax_tensor.name}

非常感谢任何帮助。

4

2 回答 2

1

我们现在发布了关于如何重新训练 Inception 模型的教程,包括如何在 CloudML 服务上部署模型的说明。

https://cloud.google.com/blog/big-data/2016/12/how-to-train-and-classify-images-using-google-cloud-machine-learning-and-cloud-dataflow

于 2016-12-17T18:57:55.157 回答
1

在您的示例中,输入张量是“DecodeJpeg/contents:0”,因此您将有类似的内容:

inputs = {'image': 'DecodeJpeg/contents:0')
outputs = {'prediction': 'final_result:0')

(请务必遵循准备模型的所有说明)。

您打算导出的模型目录应包含以下文件:

gs://my_bucket/path/to/model/export.meta
gs://my_bucket/path/to/model/checkpoint*

部署模型时,请务必设置gs://my_bucket/path/to/modeldeployment_uri.

按照您的建议,要将图像发送到服务,您需要对图像字节进行 base64 编码。您的请求正文应如下所示(注意“标签”、“b64”,表示数据是 base-64 编码的):

{'instances': [{'b64': base64.b64encode(image)}]}
于 2016-10-11T15:11:45.137 回答