我正在尝试对服务测试进行建模。
现在,我将遵循以下示例“ https://www.tensorflow.org/beta/guide/saved_model”
此示例很好。 但是,就我而言,我具有多种输入功能。
loaded = tf.saved_model.load(export_path)
infer = loaded.signatures["serving_default"]
print(infer.structured_input_signature)
=> ((), {'input1': TensorSpec(shape=(None, 1), dtype=tf.int32, name='input1'), 'input2': TensorSpec(shape=(None, 1), dtype=tf.int32, name='input2')})
例如,对于单个输入功能,只需输入功能
infer(tf.constant(x))
就我而言,对于多输入功能,如何输入功能?
我正在使用tensorflow 2.0 beta和python3.5。
答案 0 :(得分:0)
我解决了这个问题。
在单输入要素模型中,infer._num_positional_args
分配了1。
但是,多输入要素模型infer._num_positional_args
分配了0。
不知道为什么
我这样解决。
infer._num_positional_args = 2
infer(tf.constant(x1), tf.constant(x2)
用于使用请求
import json
import requests
data = json.dumps({"signature_name": "serving_default", "instances": [{'input1':[x1], 'input2':[x2]}]})
headers = {"content-type": "application/json"}
json_response = requests.post('http://localhost:8501/v1/models/model:predict', data=data, headers=headers)
对于save_model_cli
!saved_model_cli run --dir $export_path --tag_set serve --signature_def serving_default \
--input_exprs 'inptu1=[[x1]];input2=[[x2]]'