通过参考本教程,我已经构建了一个seq 2seq模型。https://keras.io/examples/nlp/lstm_seq2seq/
训练完模型后,我没有直接保存模型,而是分别保存了encoder_model和decoder_model,我使用TensorFlow服务来部署这两个模型。
编码器模型输入是一个长度为1的numpy数组,所以我将其转换为JSON并传递给REST API。
但是,对于解码器,由于解码器输入的长度为3,数据类型为numpy数组,因此该方法不起作用。
在decode_sequence函数块(其中调用了decoder_model)之后。
dec_model_url = "http://localhost:8400/v1/models/dec_model:predict"
headers = {
'content-type': "application/json;charset=UTF-8'",
'cache-control': "no-cache",
'Accept':'application/json'
}
while not stop_condition:
decoder_ip = ([target_seq] + states_value)
target_seq1 = target_seq.tolist()
target_seq1=[target_seq1]
states_value1 = states_value
states_value1[0] = states_value1[0].tolist()
states_value1[1] = states_value1[1].tolist()
decoder_ip1 = (target_seq1 + states_value1[0] + states_value1[1])
start_main = '{"instances":'
end_main = '}'
decoder_ip1 = start_main + str(decoder_ip1) +end_main
output_tokens, h = requests.request("POST", dec_model_url, data=decoder_ip1, headers=headers)
当我运行这个程序时,我得到了以下错误。
{“error”:“instances是一个普通列表,但根据tensorinfo_map,需要多个输入Tensor的对象列表'
使用REST API传递decoder_model输入的正确方法是什么?
1条答案
按热度按时间t98cgbkg1#
这个问题和Github的问题非常相似,我已经提供了这个问题的解决方法,并且已经解决了,所以你能在这里看看这个问题的解决方法吗?我希望它能帮助你解决你的问题。谢谢!