HackAnalysis  2
handle_onnx.h
1 #ifdef ONNXPATH
2 #pragma once
3 
4 #include <cmath>
5 #include <ctype.h>
6 #include <iostream>
7 #include <iomanip>
8 #include <sstream>
9 #include <fstream>
10 #include <string>
11 #include <algorithm> // for find
12 #include <cfloat> // for DBL_MAX
13 #include "onnxruntime_cxx_api.h"
14 #ifndef HEPDATAINCLUDEDIR
15 #define HEPDATAINCLUDEDIR ""
16 #endif
17 
18 
19 using namespace std;
20 
21 
22 
23 class HEPONNX
24 {
25  private:
26  Ort::Env* _env;
27  Ort::Session* _session;
28  Ort::AllocatorWithDefaultOptions allocator;
29  std::vector<Ort::AllocatedStringPtr> input_names_ptr;
30 
31  std::vector<int64_t> input_node_dims;
32 
33  std::vector<Ort::AllocatedStringPtr> output_names_ptr;
34 
35  std::vector<int64_t> output_node_dims;
36  public:
37 
38  HEPONNX() {};
39  ~HEPONNX();
40 
41 
42  HEPONNX(std::string filename);
43 
44  void addonnx(std::string filename);
45 
46  float get_result(std::vector<double> &nn_inputs);
47 
48 
49 
50  size_t input_tensor_size;
51  std::vector<const char*> input_node_names;
52  size_t num_input_nodes;
53  size_t output_tensor_size;
54  std::vector<const char*> output_node_names;
55  size_t num_output_nodes;
56 
57 };
58 
59 #endif