8#ifndef _SEIMPLEMENTATION_COMMON_ONNXMODEL_H_
9#define _SEIMPLEMENTATION_COMMON_ONNXMODEL_H_
19#include <onnxruntime_cxx_api.h>
28 template<
typename T,
typename U>
30 Ort::RunOptions run_options;
31 auto mem_info = Ort::MemoryInfo::CreateCpu(OrtDeviceAllocator, OrtMemTypeCPU);
43 if (input_data.
size() < input_size || output_data.
size() < output_size) {
48 auto input_tensor = Ort::Value::CreateTensor<T>(
49 mem_info, input_data.
data(), input_data.
size(), input_shape.
data(), input_shape.
size());
50 auto output_tensor = Ort::Value::CreateTensor<U>(
51 mem_info, output_data.
data(), output_data.
size(), output_shape.
data(), output_shape.
size());
57 m_session->Run(run_options, &input_name, &input_tensor, 1, &output_name, &output_tensor, 1);
60 template<
typename T,
typename U>
62 Ort::RunOptions run_options;
63 auto mem_info = Ort::MemoryInfo::CreateCpu(OrtDeviceAllocator, OrtMemTypeCPU);
69 for (
int i=0; i<inputs_nb; i++) {
84 input_shape.
data(), input_shape.
size()));
96 if (output_data.
size() < output_size) {
100 auto output_tensor = Ort::Value::CreateTensor<U>(
101 mem_info, output_data.
data(), output_data.
size(), output_shape.
data(), output_shape.
size());
104 m_session->Run(run_options, &input_names[0], &input_tensors[0], inputs_nb, &output_name, &output_tensor, 1);
T emplace_back(T... args)