Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions DQM/EcalMonitorClient/src/MLClient.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

#include "DQM/EcalCommon/interface/MESetNonObject.h"

#include <string>

using namespace cms::Ort;

namespace ecaldqm {
Expand Down Expand Up @@ -164,14 +166,15 @@ namespace ecaldqm {

Ort::AllocatorWithDefaultOptions allocator;

const char* inputName = session.GetInputName(0, allocator);
// Strings returned by session.GetInputNameAllocated are temporary, need to copy them before they are deallocated
std::string inputName{session.GetInputNameAllocated(0, allocator).get()};

Ort::TypeInfo inputTypeInfo = session.GetInputTypeInfo(0);
auto inputTensorInfo = inputTypeInfo.GetTensorTypeAndShapeInfo();

std::vector<int64_t> inputDims = inputTensorInfo.GetShape();

const char* outputName = session.GetOutputName(0, allocator);
std::string outputName{session.GetOutputNameAllocated(0, allocator).get()};

Ort::TypeInfo outputTypeInfo = session.GetOutputTypeInfo(0);
auto outputTensorInfo = outputTypeInfo.GetTensorTypeAndShapeInfo();
Expand All @@ -181,8 +184,8 @@ namespace ecaldqm {
size_t TensorSize = nEtaTowersPad * nPhiTowers;
std::vector<float> ebRecoOccMap1dPad(TensorSize); //To store the output reconstructed occupancy

std::vector<const char*> inputNames{inputName};
std::vector<const char*> outputNames{outputName};
std::vector<const char*> inputNames{inputName.c_str()};
std::vector<const char*> outputNames{outputName.c_str()};
std::vector<Ort::Value> inputTensors;
std::vector<Ort::Value> outputTensors;

Expand Down
13 changes: 5 additions & 8 deletions PhysicsTools/ONNXRuntime/src/ONNXRuntime.cc
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,15 @@ namespace cms::Ort {

for (size_t i = 0; i < num_input_nodes; i++) {
// get input node names
std::string input_name(session_->GetInputName(i, allocator));
std::string input_name(session_->GetInputNameAllocated(i, allocator).get());
input_node_strings_[i] = input_name;
input_node_names_[i] = input_node_strings_[i].c_str();

// get input shapes
auto type_info = session_->GetInputTypeInfo(i);
auto tensor_info = type_info.GetTensorTypeAndShapeInfo();
size_t num_dims = tensor_info.GetDimensionsCount();
input_node_dims_[input_name].resize(num_dims);
tensor_info.GetDimensions(input_node_dims_[input_name].data(), num_dims);

input_node_dims_[input_name] = tensor_info.GetShape();
}

size_t num_output_nodes = session_->GetOutputCount();
Expand All @@ -58,16 +57,14 @@ namespace cms::Ort {

for (size_t i = 0; i < num_output_nodes; i++) {
// get output node names
std::string output_name(session_->GetOutputName(i, allocator));
std::string output_name(session_->GetOutputNameAllocated(i, allocator).get());
output_node_strings_[i] = output_name;
output_node_names_[i] = output_node_strings_[i].c_str();

// get output node types
auto type_info = session_->GetOutputTypeInfo(i);
auto tensor_info = type_info.GetTensorTypeAndShapeInfo();
size_t num_dims = tensor_info.GetDimensionsCount();
output_node_dims_[output_name].resize(num_dims);
tensor_info.GetDimensions(output_node_dims_[output_name].data(), num_dims);
output_node_dims_[output_name] = tensor_info.GetShape();

// the 0th dim depends on the batch size
output_node_dims_[output_name].at(0) = -1;
Expand Down