如何解决{'error': 'output_shape 的元素数量不正确:2 应该是:1\n\t [[{{node transform/SparseToDense_3}}]]'} 当前请求依赖项我的模型我的代码输出 (venv) C:\Users\User\PycharmProjects\mlops-on-gcp-master\serving_model\1616659120>saved_m
我尝试通过 tensorflow 请求我的模型来进行预测,但我一直遇到这个错误:
{'error': 'output_shape has incorrect number of elements: 2 should be: 1\n\t [[{{node transform/SparseToDense_3}}]]'}
我尝试了所有方法,但我不明白我的请求的结构是什么
当前请求
import tensorflow as tf
# server URL
model_server_url = 'http://localhost:8501/v1/models/saved_model:predict'
import requests
import base64
import json
import numpy as np
feature = {
'lower_xf': tf.train.Feature(float_list=tf.train.FloatList(value=[1.0])),'upper_xf': tf.train.Feature(float_list=tf.train.FloatList(value=[2.0])),'special_xf': tf.train.Feature(float_list=tf.train.FloatList(value=[3.0])),'len_xf': tf.train.Feature(float_list=tf.train.FloatList(value=[4.0])),"label": tf.train.Feature(float_list=tf.train.FloatList(value=[1.0])),}
example_proto = tf.train.Example(features=tf.train.Features(feature=feature))
example_proto = example_proto.SerializeToString()
json_data = {
"signature_name": "serving_default","inputs": {"examples": {"b64": base64.b64encode(example_proto).decode('utf-8')}
}
}
resp = requests.post(model_server_url,json=json_data)
print(resp.json())
依赖项
python = ">=3.8,<3.9"
notebook = "^6.2.0"
tensorflow = "^2.4.1"
tensorflow-data-validation = "^0.28.0"
tfx = "^0.28.0"
jupyter = "^1.0.0"
我的模型
我的代码
http://localhost:8501/v1/models/saved_model/metadata
的输出
{
"model_spec": {
"name": "saved_model","signature_name": "","version": "1616058367"
},"metadata": {
"signature_def": {
"signature_def": {
"serving_default": {
"inputs": {
"examples": {
"dtype": "DT_STRING","tensor_shape": {
"dim": [
{
"size": "-1","name": ""
}
],"unknown_rank": false
},"name": "serving_default_examples:0"
}
},"outputs": {
"output_0": {
"dtype": "DT_FLOAT","name": ""
},{
"size": "2","name": "StatefulPartitionedCall:0"
}
},"method_name": "tensorflow/serving/predict"
},"__saved_model_init_op": {
"inputs": {},"outputs": {
"__saved_model_init_op": {
"dtype": "DT_INVALID","tensor_shape": {
"dim": [],"unknown_rank": true
},"name": "NoOp"
}
},"method_name": ""
}
}
}
}
}
输出 (venv) C:\Users\User\PycharmProjects\mlops-on-gcp-master\serving_model\1616659120>saved_model_cli show --dir . --all
2021-03-25 15:34:03.250351: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2021-03-25 15:34:03.250531: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:
signature_def['__saved_model_init_op']:
The given SavedModel SignatureDef contains the following input(s):
The given SavedModel SignatureDef contains the following output(s):
outputs['__saved_model_init_op'] tensor_info:
dtype: DT_INVALID
shape: unknown_rank
name: NoOp
Method name is:
signature_def['serving_default']:
The given SavedModel SignatureDef contains the following input(s):
inputs['len_xf'] tensor_info:
dtype: DT_FLOAT
shape: (-1)
name: serving_default_len_xf:0
inputs['lower_xf'] tensor_info:
dtype: DT_FLOAT
shape: (-1)
name: serving_default_lower_xf:0
inputs['special_xf'] tensor_info:
dtype: DT_FLOAT
shape: (-1)
name: serving_default_special_xf:0
inputs['upper_xf'] tensor_info:
dtype: DT_FLOAT
shape: (-1)
name: serving_default_upper_xf:0
The given SavedModel SignatureDef contains the following output(s):
outputs['dense_1'] tensor_info:
dtype: DT_FLOAT
shape: (-1,2)
name: StatefulPartitionedCall:0
Method name is: tensorflow/serving/predict
2021-03-25 15:34:07.723640: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices,tf_xla_enable_xla_devices not set
2021-03-25 15:34:07.725820: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found
2021-03-25 15:34:07.726446: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303)
2021-03-25 15:34:07.729019: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: DESKTOP-KKTTVVP
2021-03-25 15:34:07.729215: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: DESKTOP-KKTTVVP
Defined Functions:
Function Name: '__call__'
Option #1
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,),dtype=tf.float32,name='inputs/len_xf'),'lower_xf': TensorSpec(shape=(None,name='inputs/lower_xf'),'special_xf': TensorSpec(shape=(None,name='inputs/special_xf'),'upper_xf': TensorSpec(shape=(None,name='inputs/upper_xf')}
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #2
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='len_xf'),name='lower_xf'),name='specia
l_xf'),name='upper_xf')}
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #3
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='upper_xf')}
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
Option #4
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='inputs/upper_xf')}
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
Function Name: '_default_save_signature'
Option #1
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='upper_xf')}
Function Name: 'call_and_return_all_conditional_losses'
Option #1
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='upper_xf')}
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #2
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='upper_xf')}
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
Option #3
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='inputs/upper_xf')}
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #4
Callable with:
Argument #1
DType: dict
Value: {'len_xf': TensorSpec(shape=(None,name='inputs/upper_xf')}
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
我在 Docker version 20.10.5,build 55c4c88
上部署我的模型
我不知道问题是我的请求还是我的代码,但我真的不明白
感谢您的帮助 =)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。