gcloud ml-engine本地预测失败
首先,我用input.json
确定了所需的saved_model_cli show --all --dir saved_model/
结构
响应:
MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:
signature_def['serving_default']:
The given SavedModel SignatureDef contains the following input(s):
inputs['inputs'] tensor_info:
dtype: DT_UINT8
shape: (-1, -1, -1, 3)
name: image_tensor:0
....
由此,我将input.json
的{{1}}格式化为:
gcloud ml-engine local predict
最后,我跑了{"inputs": {"b64": "ENCODED"}}
...
响应:
gcloud ml-engine local predict --model-dir saved_model/ --json-instances=PATH-TO-INPUTS.json
任何克服这一障碍的帮助都会很棒。到目前为止,我还无法从在线研究中找到解决方案。谢谢!
答案 0 :(得分:0)
input.json
中的数据与inputs['inputs']
的形状不匹配。您尚未提供有关各种尺寸代表什么的足够信息,但是我怀疑这是图像的NHWC(批处理大小x高度x宽度x通道)编码。
我也怀疑这些应该是原始像素值。在这种情况下,您不应该对值进行base64编码,即,您应该像这样发送数据:
{"inputs": [[[0, 0, 0], ... [0, 0, 0]]]}
话虽如此,您应该考虑将图像作为字节字符串发送并解码图形中的图像。有关各种方法的更多信息,请参见:
https://stackoverflow.com/a/46222990/1399222
似乎您正在使用“编码为JSON的原始张量”,并且我建议使用“压缩映像数据”,或者稍微简单一些的“以字节字符串形式打包的张量”