在C++中調用ONNX模型的一種常見方法是使用ONNX Runtime庫。下面是一個簡單的示例代碼,演示如何在C++中加載和運行ONNX模型:
#include <onnxruntime_cxx_api.h>
#include <iostream>
int main() {
// 加載ONNX模型
Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test");
Ort::SessionOptions session_options;
Ort::Session session(env, "model.onnx", session_options);
// 創建輸入
std::vector<float> input_data = {1.0, 2.0, 3.0, 4.0};
Ort::Value input_tensor = Ort::Value::CreateTensor<float>(env, input_data.data(), input_data.size(), {1, 4});
// 運行模型
const char* input_names[] = {"input"};
const char* output_names[] = {"output"};
Ort::RunOptions run_options;
Ort::Value output_tensor = session.Run(run_options, input_names, &input_tensor, 1, output_names, 1);
// 獲取輸出
float* output_data = output_tensor.GetTensorMutableData<float>();
for (size_t i = 0; i < output_tensor.GetTensorTypeAndShapeInfo().GetElementCount(); i++) {
std::cout << output_data[i] << " ";
}
return 0;
}
在這個示例中,我們首先加載了一個名為"model.onnx"的ONNX模型。然后創建了一個包含四個元素的輸入張量,并將其傳遞給模型。最后,我們運行模型并獲取輸出結果。請注意,此示例假設模型具有單個輸入和單個輸出,實際使用時可能需要根據模型的具體輸入輸出來修改代碼。