如何为张量流模型推断输入多个特征

时间:2019-08-12 08:02:18

标签: tensorflow tensorflow-serving

我正在尝试对服务测试进行建模。
现在,我将遵循以下示例“ 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。

1 个答案:

答案 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]]'