diff --git a/fastdeploy/runtime/backends/paddle/paddle_backend.cc b/fastdeploy/runtime/backends/paddle/paddle_backend.cc index e817f272b..6df92d279 100644 --- a/fastdeploy/runtime/backends/paddle/paddle_backend.cc +++ b/fastdeploy/runtime/backends/paddle/paddle_backend.cc @@ -88,13 +88,6 @@ void PaddleBackend::BuildOption(const PaddleBackendOption& option) { if (!option.enable_log_info) { config_.DisableGlogInfo(); } - if (!option.delete_pass_names.empty()) { - auto pass_builder = config_.pass_builder(); - for (int i = 0; i < option.delete_pass_names.size(); i++) { - FDINFO << "Delete pass : " << option.delete_pass_names[i] << std::endl; - pass_builder->DeletePass(option.delete_pass_names[i]); - } - } if (option.cpu_thread_num <= 0) { config_.SetCpuMathLibraryNumThreads(8); } else { @@ -239,6 +232,15 @@ bool PaddleBackend::InitFromPaddle(const std::string& model_buffer, << " to set TensorRT dynamic shape." << std::endl; config_.EnableTunedTensorRtDynamicShape(shape_range_info, false); } + // Note(zhoushunjie): The pass deletion should be executed just before + // creating predictor. + if (!option.delete_pass_names.empty()) { + auto pass_builder = config_.pass_builder(); + for (int i = 0; i < option.delete_pass_names.size(); i++) { + FDINFO << "Delete pass : " << option.delete_pass_names[i] << std::endl; + pass_builder->DeletePass(option.delete_pass_names[i]); + } + } predictor_ = paddle_infer::CreatePredictor(config_); initialized_ = true; return true;