我正在使用tensorflow服务器来推断tensorflow对象检测API。为此,我创建了一个Rest api客户端。我将请求发布到服务器,如下所示:
server_url = 'http://localhost:8501/v1/models/omr_500:predict'
headers = {"content-type": "application/json"}
image_path = 'test_images/19_inp.jpg'
def pre_process(image_path):
image = Image.open(image_path).convert("RGB")
image_np = plot_util.load_image_into_numpy_array(image)
image_tensor = np.expand_dims(image_np, 0)
formatted_json_input = json.dumps({"signature_name": "serving_default", "instances": image_tensor.tolist()})
return formatted_json_input
requests.post(server_url, pre_process(image_path), headers)
此类请求的问题在于,要发布100张图像的请求,我需要对其进行预处理。在函数pre_process()
中,numpy
到python list
的转换花费了大部分时间(image_tensor.tolist()
)。对于50张图像,预处理本身大约需要20秒。这增加了我的推理时间。有什么有效的推理方法吗?