From 3e55f2555199b3d354824b50e5be61541ac98f3a Mon Sep 17 00:00:00 2001 From: zhupengyang Date: Tue, 22 Aug 2023 14:17:25 +0800 Subject: [PATCH] fix delete_repeated_ops_pass, fix multiclass_nms3 (#56434) --- .../fluid/framework/ir/delete_repeated_ops_pass.cc | 4 ++++ paddle/phi/kernels/xpu/multiclass_nms3_kernel.cc | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/paddle/fluid/framework/ir/delete_repeated_ops_pass.cc b/paddle/fluid/framework/ir/delete_repeated_ops_pass.cc index 508279b1016..ea0de9759f3 100644 --- a/paddle/fluid/framework/ir/delete_repeated_ops_pass.cc +++ b/paddle/fluid/framework/ir/delete_repeated_ops_pass.cc @@ -122,6 +122,10 @@ void DeleteRepeatedOpsPass::DeleteRepeatedOps( Graph* graph) { VLOG(4) << "handle DeleteRepeatedOps"; GET_IR_NODE_FROM_SUBGRAPH(in_var, in_var, pattern); + // in_var node may be deleted by the previous detected subgraph + if (graph->Nodes().count(in_var) == 0) { + return; + } std::vector invalid_out_ops{ "while", "conditional_block", "fetch"}; diff --git a/paddle/phi/kernels/xpu/multiclass_nms3_kernel.cc b/paddle/phi/kernels/xpu/multiclass_nms3_kernel.cc index d33f2e793ed..442d972691f 100644 --- a/paddle/phi/kernels/xpu/multiclass_nms3_kernel.cc +++ b/paddle/phi/kernels/xpu/multiclass_nms3_kernel.cc @@ -59,10 +59,18 @@ void MultiClassNMSKernel(const Context& ctx, rois_num_vec.clear(); if (is_lod) { if (has_rois_num) { + phi::DenseTensor rois_num_host; + rois_num_host.Resize(rois_num.get_ptr()->dims()); + ctx.template HostAlloc(&rois_num_host); + phi::Copy(ctx, + *rois_num.get_ptr(), + rois_num_host.place(), + false, + &rois_num_host); n = rois_num.get_ptr()->numel(); for (int i = 0; i < n; i++) { - rois_num_vec.push_back(rois_num.get_ptr()->data()[i]); - boxes_count += rois_num.get_ptr()->data()[i]; + rois_num_vec.push_back(rois_num_host.data()[i]); + boxes_count += rois_num_host.data()[i]; } } else { auto lod = bboxes.lod().back(); -- GitLab