From 21649a285212dcd9381420d7379c5afd43ef4721 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 4 Feb 2021 17:04:35 +0800 Subject: [PATCH] Check dynamic support. --- ge/generator/ge_generator.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index 69ee2bfa..e9c2e6ab 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -624,6 +624,7 @@ namespace { Status CheckDynamicSupport(GeModelPtr &ge_model, const ComputeGraphPtr &graph) { bool support_dynamic = true; + bool is_dynamic = false; for (const auto &node : graph->GetDirectNode()) { GE_CHECK_NOTNULL(node); if (node->GetType() == DATA || node->GetType() == CONSTANT || node->GetType() == CONSTANTOP || @@ -632,13 +633,18 @@ namespace { } auto op_desc = node->GetOpDesc(); GE_CHECK_NOTNULL(op_desc); - (void)AttrUtils::GetBool(op_desc, kAttrSupportDynamicShape, support_dynamic); - if (!support_dynamic) { - GELOGW("Node[%s] doesn't support dynamic shape.", node->GetName().c_str()); - (void)AttrUtils::SetBool(ge_model, kAttrSupportDynamicShape, false); - return SUCCESS; + if (AttrUtils::HasAttr(op_desc, kAttrSupportDynamicShape)) { + is_dynamic = true; + (void) AttrUtils::GetBool(op_desc, kAttrSupportDynamicShape, support_dynamic); + if (!support_dynamic) { + GELOGW("Node[%s] doesn't support dynamic shape.", node->GetName().c_str()); + break; + } } } + if (is_dynamic) { + (void) AttrUtils::SetBool(ge_model, kAttrSupportDynamicShape, support_dynamic); + } return SUCCESS; } }