是否可以在Nvidia Triton推理服务器模型库中使用另一个具有自定义Python模型的模型



我想在Triton推理服务器模型存储库中的另一个自定义Python模型中使用一个模型,该模型位于同一存储库中。有可能吗?如果是,如何做到这一点?

我想这可以通过构建自定义Python后端Stub来完成,但我想知道是否有更简单的方法。

是。

您可以构造InferenceRequest并调用exec((方法来使用模型存储库中的另一个模型。

以下是代码片段:

inference_request = pb_utils.InferenceRequest(
model_name='model_name',
requested_output_names=['output0', 'output1'],
inputs=[pb_utils.Tensor('input0', input0.astype(np.float32))]
)
inference_response = inference_request.exec()
output0 = pb_utils.get_output_tensor_by_name(inference_response, 'output0')
output1 = pb_utils.get_output_tensor_by_name(inference_response, 'output1')

这里有一个相对完整的例子。

import numpy as np
import triton_python_backend_utils as pb_utils
import utils

class facenet(object):
def __init__(self):
self.Facenet_inputs =  ['input_1']
self.Facenet_outputs =  ['Bottleneck_BatchNorm']
def calc_128_vec(self, img):
face_img = utils.pre_process(img)
inference_request = pb_utils.InferenceRequest(
model_name='facenet',
requested_output_names=[self.Facenet_outputs[0]],
inputs=[pb_utils.Tensor(self.Facenet_inputs[0], face_img.astype(np.float32))]
)
inference_response = inference_request.exec()
pre = utils.pb_tensor_to_numpy(pb_utils.get_output_tensor_by_name(inference_response, self.Facenet_outputs[0]))
pre = utils.l2_normalize(np.concatenate(pre))
pre = np.reshape(pre, [128])

return pre

您可以在此处找到更多参考资料:https://github.com/triton-inference-server/python_backend#business-逻辑脚本测试版

相关内容

最新更新