在Google云计算机学习上部署Retrained inception模型

时间:2016-10-11 13:35:43

标签: tensorflow google-cloud-ml

我设法使用此tutorial之后的通用初始模型重新训练我的特定分类模型。我现在想要在谷歌云计算机上学习它steps

我已经设法将其导出为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}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

在你的例子中,输入张量是'DecodeJpeg / contents:0',所以你会有类似的东西:

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

(务必遵循preparing模型的所有说明。)

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

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

部署模型时,请务必将gs://my_bucket/path/to/model设置为deployment_uri

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

{'instances': [{'b64': base64.b64encode(image)}]}

答案 1 :(得分: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