From df24be289221a37b55f9853d2083cf5a0a5382dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=BE=E8=81=AA?= Date: Thu, 26 Sep 2024 00:11:19 +0800 Subject: [PATCH] Revert "fix onnxruntime memoryleak when load model (#2108)" This reverts commit c494d8fd18c29f601829f428a327b09ac7c29aed. --- runtime/onnxruntime/src/fsmn-vad.cpp | 11 ++++------- runtime/onnxruntime/src/fsmn-vad.h | 4 +--- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/runtime/onnxruntime/src/fsmn-vad.cpp b/runtime/onnxruntime/src/fsmn-vad.cpp index e34767009..42ce83b45 100644 --- a/runtime/onnxruntime/src/fsmn-vad.cpp +++ b/runtime/onnxruntime/src/fsmn-vad.cpp @@ -60,19 +60,18 @@ void FsmnVad::ReadModel(const char* vad_model) { LOG(ERROR) << "Error when load vad onnx model: " << e.what(); exit(-1); } - GetInputOutputInfo(vad_session_, &vad_in_names_, &vad_out_names_, &vad_allocator); + GetInputOutputInfo(vad_session_, &vad_in_names_, &vad_out_names_); } void FsmnVad::GetInputOutputInfo( const std::shared_ptr &session, - std::vector *in_names, std::vector *out_names, - Ort::AllocatorWithDefaultOptions *allocator) { + std::vector *in_names, std::vector *out_names) { Ort::AllocatorWithDefaultOptions allocator; // Input info int num_nodes = session->GetInputCount(); in_names->resize(num_nodes); for (int i = 0; i < num_nodes; ++i) { - std::unique_ptr name = session->GetInputNameAllocated(i, *allocator); + std::unique_ptr name = session->GetInputNameAllocated(i, allocator); Ort::TypeInfo type_info = session->GetInputTypeInfo(i); auto tensor_info = type_info.GetTensorTypeAndShapeInfo(); ONNXTensorElementDataType type = tensor_info.GetElementType(); @@ -91,7 +90,7 @@ void FsmnVad::GetInputOutputInfo( num_nodes = session->GetOutputCount(); out_names->resize(num_nodes); for (int i = 0; i < num_nodes; ++i) { - std::unique_ptr name = session->GetOutputNameAllocated(i, *allocator); + std::unique_ptr name = session->GetOutputNameAllocated(i, allocator); Ort::TypeInfo type_info = session->GetOutputTypeInfo(i); auto tensor_info = type_info.GetTensorTypeAndShapeInfo(); ONNXTensorElementDataType type = tensor_info.GetElementType(); @@ -311,8 +310,6 @@ void FsmnVad::Test() { } FsmnVad::~FsmnVad() { - for (auto vad_in_name_item : vad_in_names_) vad_allocator.Free((void*)vad_in_name_item); - for (auto vad_out_name_item : vad_out_names_) vad_allocator.Free((void*)vad_out_name_item); } FsmnVad::FsmnVad():env_(ORT_LOGGING_LEVEL_ERROR, ""),session_options_{} { diff --git a/runtime/onnxruntime/src/fsmn-vad.h b/runtime/onnxruntime/src/fsmn-vad.h index 5443a3ba4..f06a9651b 100644 --- a/runtime/onnxruntime/src/fsmn-vad.h +++ b/runtime/onnxruntime/src/fsmn-vad.h @@ -34,7 +34,6 @@ public: std::shared_ptr vad_session_ = nullptr; Ort::Env env_; Ort::SessionOptions session_options_; - Ort::AllocatorWithDefaultOptions vad_allocator; std::vector vad_in_names_; std::vector vad_out_names_; std::vector> in_cache_; @@ -57,8 +56,7 @@ private: static void GetInputOutputInfo( const std::shared_ptr &session, - std::vector *in_names, std::vector *out_names, - Ort::AllocatorWithDefaultOptions *allocator); + std::vector *in_names, std::vector *out_names); void FbankKaldi(float sample_rate, std::vector> &vad_feats, std::vector &waves);