我设法使用此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}
非常感谢任何帮助。
答案 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服务上部署模型的说明。