TensorFlow服务REST API的输入

inn6fuwd  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(102)

通过参考本教程,我已经构建了一个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输入的正确方法是什么?

t98cgbkg

t98cgbkg1#

这个问题和Github的问题非常相似,我已经提供了这个问题的解决方法,并且已经解决了,所以你能在这里看看这个问题的解决方法吗?我希望它能帮助你解决你的问题。谢谢!

相关问题