110 {
111
112
113
114
115
116
117
118 std::vector<float> input_tensor_values;
119 std::vector<int64_t> input_node_dims = {1,
static_cast<int>(node_feat.size()),
static_cast<int>(node_feat.at(0).
size())};
120
121 for (auto& it : node_feat){
122 input_tensor_values.insert(input_tensor_values.end(),
it.begin(),
it.end());
123 }
124
125
126 auto memory_info = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault);
127 Ort::Value input_tensor = Ort::Value::CreateTensor<float>(memory_info, input_tensor_values.data(), input_tensor_values.size(), input_node_dims.data(), input_node_dims.size());
128
129
133 }
137 }
138
139
140
141
142
144 auto output_tensors = session.Run(Ort::RunOptions{nullptr}, input_node_names.data(), &input_tensor, input_node_names.size(), output_node_names.data(), output_node_names.size());
145
146
147 float* float_ptr = output_tensors.front().GetTensorMutableData<float>();
148
149 int num_jets = node_feat.size();
150
151 for (
int i=0;
i<num_jets;
i++){
152 std::vector<float> eff_one_jet_tmp;
154 eff_one_jet_tmp.push_back(float_ptr[i*
m_num_wp+j]);
155 }
156 effAllJetAllWp.push_back(std::move(eff_one_jet_tmp));
157 }
158}