onnxruntime 同时加载
时间: 2025-01-08 19:06:23 浏览: 5
### 加载多个ONNX模型至ONNX Runtime
为了实现同时加载多个ONNX模型到ONNX Runtime中,可以创建独立的`onnxruntime.InferenceSession`实例来管理各个模型。每个会话负责处理特定的模型文件并提供推理功能。
```python
import onnxruntime as ort
import numpy as np
# 定义两个不同的ONNX模型路径
model_paths = [
"path/to/model1.onnx",
"path/to/model2.onnx"
]
# 创建一个字典用于存储不同模型对应的InferenceSession对象
sessions = {}
for idx, model_path in enumerate(model_paths):
sessions[f'model_{idx}'] = ort.InferenceSession(model_path)
def run_model(session_name, input_data):
"""运行指定名称下的模型"""
session = sessions.get(session_name)
if not session:
raise ValueError(f"No such session named {session_name}")
inputs = {session.get_inputs()[0].name: input_data}
outputs = session.run(None, inputs)[0]
return outputs
# 测试数据输入
dummy_input = np.random.randn(1, 3, 224, 224).astype(np.float32)
output_1 = run_model('model_0', dummy_input)
print("Model 1 Output:", output_1[:5])
output_2 = run_model('model_1', dummy_input)
print("Model 2 Output:", output_2[:5])
```
通过上述方法能够有效地管理和调用多组预训练好的神经网络结构而不会相互干扰[^1]。
阅读全文