{“ error”:“在签名def中找不到服务签名名称:” serving_default“”}

时间:2019-05-21 09:06:48

标签: model google-cloud-platform predict tensorflow-serving

我使用GCP(谷歌云平台)来训练我的模型,并且可以导出导出的模型。我使用该模型并使用了Tensorflow服务1.8 CPU的本地docker镜像,我得到以下结果作为REST调用的输出 { “错误”:“在签名定义中找不到服务签名名称:\” serving_default \“ }

2 个答案:

答案 0 :(得分:1)

使用SavedModelCLI命令查看模型的SignatureDef,如下所示:

saved_model_cli show --dir /usr/local/google/home/abc/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_three/00000123

它应该显示如下图所示:

signature_def['Classify']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['inputs'] tensor_info:
        dtype: DT_STRING
        shape: unknown_rank
        name: tf_example:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['outputs'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, 1)
        name: y2:0
  Method name is: tensorflow/serving/regress

signature_def['serving_default']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['x'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, 1)
        name: x:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['y'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, 1)
        name: y:0
  Method name is: tensorflow/serving/predict

检查是否可以在上面的签名定义中看到名为serving_default的签名。

根据我的理解,很可能该签名丢失了,因此会导致错误。

答案 1 :(得分:0)

您是如何导出模型的? 似乎您已标识了自定义签名,但未标识默认值。只需将“ serving_default”更改为您的签名即可。