diff --git a/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc b/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc index 773dc33084..eaca523ba0 100644 --- a/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc +++ b/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc @@ -1361,10 +1361,6 @@ std::vector AnfRuntimeAlgorithm::GetOutputMinShape(const AnfNodePtr &anf_no } } -bool CheckDynamic(const NotNull &shape) { - return !std::all_of(shape->shape().begin(), shape->shape().end(), [](int s) { return s > 0; }); -} - bool AnfRuntimeAlgorithm::IsNodeDynamicShape(const AnfNodePtr &node) { MS_EXCEPTION_IF_NULL(node); auto base_shape = node->Shape(); @@ -1373,7 +1369,7 @@ bool AnfRuntimeAlgorithm::IsNodeDynamicShape(const AnfNodePtr &node) { return false; } if (base_shape->isa()) { - if (CheckDynamic(NOT_NULL(base_shape->cast()))) { + if (IsShapeDynamic(base_shape->cast())) { return true; } } else if (base_shape->isa()) { @@ -1384,7 +1380,7 @@ bool AnfRuntimeAlgorithm::IsNodeDynamicShape(const AnfNodePtr &node) { if (!b_shape->isa()) { continue; } - if (CheckDynamic(NOT_NULL(b_shape->cast()))) { + if (IsShapeDynamic(b_shape->cast())) { return true; } } diff --git a/mindspore/ccsrc/backend/session/session_basic.cc b/mindspore/ccsrc/backend/session/session_basic.cc index 712a8e835e..e8645f6531 100644 --- a/mindspore/ccsrc/backend/session/session_basic.cc +++ b/mindspore/ccsrc/backend/session/session_basic.cc @@ -1427,35 +1427,12 @@ void SessionBasic::RunGraphAsync(const GraphId &graph_id, const std::vector &shape) { - return !std::all_of(shape->shape().begin(), shape->shape().end(), [](int s) { return s > 0; }); + return std::any_of(shape->shape().begin(), shape->shape().end(), [](int s) { return s < 0; }); } bool IsNodeOutputDynamicShape(const CNodePtr &anf_node_ptr) { MS_EXCEPTION_IF_NULL(anf_node_ptr); - auto base_shape = anf_node_ptr->Shape(); - if (base_shape == nullptr) { - MS_LOG(INFO) << "Invalid bash shape ptr, node:" << anf_node_ptr->fullname_with_scope(); - return false; - } - if (base_shape->isa()) { - if (IsDynamicShape(NOT_NULL(base_shape->cast()))) { - return true; - } - } else if (base_shape->isa()) { - auto tuple_shape = base_shape->cast(); - MS_EXCEPTION_IF_NULL(tuple_shape); - - for (size_t i = 0; i < tuple_shape->size(); ++i) { - auto b_shp = (*tuple_shape)[i]; - if (!b_shp->isa()) { - continue; - } - if (IsDynamicShape(NOT_NULL(b_shp->cast()))) { - return true; - } - } - } - return false; + return AnfAlgo::IsNodeDynamicShape(anf_node_ptr); } bool IsNodeInputDynamicShape(const CNodePtr &anf_node_ptr) {