Как реализовать указатель приема данных в буфере и сохранить его как пустой указатель?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как реализовать указатель приема данных в буфере и сохранить его как пустой указатель?

Сообщение Anonymous »


класс CustomBuffer { публика: CustomBuffer(void* data_ptr, std::vector затемняется, Тип Тензордататипе ) : data_(data_ptr), shape(std::move(dims)), dtype(type) {} ~CustomBuffer() {/* Как реализовать? */} публика: std::vector shape; Тип TensorDataType; частный: void* const data_; } Как реализовать деструктор в приведенном выше примере?

Вот пример использования:

#include std::vector run_inference(std::string img_path, std::string model_path) { Ort::Session* session = ... cv::Mat image = cv::imread(img_path); интервал SW, ш; // Известно только во время выполнения cv::Mat resized_image; cv::resize(image, resized_image, cv::Size(sw, sh), 0, 0, cv::InterpolationFlags::INTER_LINEAR); std::vector input_tensor_values_list; std::vector input_tensor_shapes_list; // заполняем данные из resized_image ... Ort::MemoryInfo Memory_info = ... std::vector input_tensors; // заполняем input_tensors из input_tensor_values_list ... std::vector output_tensors = session->Run( Ort::RunOptions{nullptr}, input_names.data(), input_tensors.data(), input_tensors.size(), выходные_имена.данные(), выходные_имена.размер()); результаты std::vector; для (авто и выходной_тензор: выходные_тензоры) { Ort::TensorTypeAndShapeInfo tensor_info = output_tensor.GetTensorTypeAndShapeInfo(); ONNXTensorElementDataType elem_type = tensor_info.GetElementType(); std::vector tensor_shape = tensor_info.GetShape(); results.emplace_back(output_tensor.release(), tensor_shape, elem_type); } возврат результатов; } Основная логика приведенного выше кода:
[*]Прочитайте изображение как cv::Mat и измените его размер во время выполнения. знать только желаемую форму во время выполнения [*]Подготовьте ввод ONNXRuntime Run [*]Выполнить вывод с помощью ONNXRuntime. [*]Передать право собственности на результат вывода CustomBuffer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»