我使用GCP(谷歌云平台)来训练我的模型,我可以导出导出的模型。我使用了该模型并使用了服务 1.8 CPU 的 Tensorflow 的本地 docker 镜像,我得到以下结果作为 REST 后调用的输出 { “错误”:“服务签名名称:\“serving_default\”在签名定义中找不到” }
最佳答案
使用 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
的签名。
根据我的理解,很可能该签名丢失,因此会导致错误。
关于model - { "error": "Serving signature name: "serving_default"not found in signature def"},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56234858/