diff --git a/mindspore/ccsrc/backend/optimizer/gpu/replace_bn_cast_fusion.cc b/mindspore/ccsrc/backend/optimizer/gpu/replace_bn_cast_fusion.cc index 85a0aada6f..f328e625e4 100644 --- a/mindspore/ccsrc/backend/optimizer/gpu/replace_bn_cast_fusion.cc +++ b/mindspore/ccsrc/backend/optimizer/gpu/replace_bn_cast_fusion.cc @@ -49,6 +49,7 @@ const AnfNodePtr ReplaceBNCastFusion::Process(const FuncGraphPtr &graph, const A auto manager = graph->manager(); MS_EXCEPTION_IF_NULL(manager); auto outlist = GetRealNodeUsedList(graph, fbn2); + bool changed = false; for (size_t i = 0; i < outlist->size(); i++) { auto index_node = AnfAlgo::GetInputNode(utils::cast(outlist->at(i).first), 1); auto value_node = index_node->cast(); @@ -63,8 +64,12 @@ const AnfNodePtr ReplaceBNCastFusion::Process(const FuncGraphPtr &graph, const A outputs_type.push_back(kNumberTypeFloat16); outputs_shape.push_back(AnfAlgo::GetOutputInferShape(outlist->at(i).first, 0)); AnfAlgo::SetOutputInferTypeAndShape(outputs_type, outputs_shape, outlist->at(i).first.get()); + changed = true; } } + if (!changed) { + return nullptr; + } manager->Replace(utils::cast(x_after), utils::cast(x_before)); outputs_type.clear(); outputs_shape.clear(); diff --git a/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc b/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc index 2962ba3be2..f505d83299 100644 --- a/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc +++ b/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc @@ -425,7 +425,7 @@ std::string AnfRuntimeAlgorithm::GetInputFormat(const AnfNodePtr &node, size_t i << node->DebugString() << "]"; } if (!IsRealKernel(node)) { - GetPrevNodeOutputFormat(node, input_idx); + return GetPrevNodeOutputFormat(node, input_idx); } auto kernel_info = dynamic_cast(node->kernel_info()); MS_EXCEPTION_IF_NULL(kernel_info);