From 803643737382d7ab8b4a30ff23e25bf5beaa2bd2 Mon Sep 17 00:00:00 2001 From: zhaoxinxin Date: Tue, 9 Feb 2021 17:03:34 +0800 Subject: [PATCH] modified: ge/graph/passes/no_use_reshape_remove_pass.cc --- ge/graph/passes/no_use_reshape_remove_pass.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ge/graph/passes/no_use_reshape_remove_pass.cc b/ge/graph/passes/no_use_reshape_remove_pass.cc index 66a798a5..fdd83862 100644 --- a/ge/graph/passes/no_use_reshape_remove_pass.cc +++ b/ge/graph/passes/no_use_reshape_remove_pass.cc @@ -83,11 +83,16 @@ Status NoUseReshapeRemovePass::Run(ge::NodePtr &node) { } if (to_be_deleted) { GELOGI("NoUseReshapeRemovePass remove useless node:%s", node->GetName().c_str()); - auto ret = PassUtils::UnlinkNodeWithControlCopy(node, kReshapeShapeIndex); - if (ret != SUCCESS) { - GELOGE(ret, "DimensionAdjustPass unlink node with control copy fail."); - return ret; + // if shape input without any input(const), it can be unlink from reshape + auto shape_input_anchor = node->GetInDataAnchor(kReshapeShapeIndex); + if (shape_input_anchor != nullptr) { + auto shape_input = shape_input_anchor->GetOwnerNode(); + GE_CHECK_NOTNULL(shape_input); + if (shape_input->GetInAllNodes().empty()) { + shape_input_anchor->UnlinkAll(); + } } + return IsolateAndDeleteNode(node, {kReshapeDataIndex}); } return SUCCESS;