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