tritonserver - 是否可以在 Nvidia Triton 推理服务器模型存储库中使用另一个模型和自定义 Python 模型?
问题描述
我想在我在同一个存储库中拥有的另一个自定义 Python 模型中使用我的 Triton 推理服务器模型存储库中的模型。可能吗?如果是,该怎么做?
我想这可以通过Building Custom Python Backend 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-logic-scripting-beta
推荐阅读
- oracle - PLS-00103:在预期以下情况之一时遇到符号“DELETE”:(-+ case mod new not null select with
- javascript - 从 .load jquery 返回到我的 div 框的“主页”内容
- javascript - HTML页面和Flask Python App之间的异步通信
- sql - 如何用增量整数替换相同的值?
- eclipse - 为什么我无法在 Eclipse IDE 中导入 java.util.Date.* 包
- gmail-promo-tab - 作为发件人使用 promotab 是否有任何先决条件?
- sharepoint - 我不再能够使用 Ngrok 在本地调试/运行我的 SharePoint 远程事件接收器
- javascript - 反正有没有在表格中显示序列号?
- swiftui - 禁用 WKWebView 的水平滚动
- latex - LaTeX:表格中带有makecell的均匀间隔单元格