From 689e50a3d05a4292bacbaba456544f1bc230753f Mon Sep 17 00:00:00 2001 From: yangzhenzhang Date: Tue, 16 Mar 2021 10:06:32 +0800 Subject: [PATCH] fix grad accu bug for no used parameter --- mindspore/ccsrc/frontend/parallel/step_parallel.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mindspore/ccsrc/frontend/parallel/step_parallel.cc b/mindspore/ccsrc/frontend/parallel/step_parallel.cc index 81099f3e7d..8f79fc4c17 100644 --- a/mindspore/ccsrc/frontend/parallel/step_parallel.cc +++ b/mindspore/ccsrc/frontend/parallel/step_parallel.cc @@ -3325,6 +3325,15 @@ static void HandleNoUsedParameter(const FuncGraphPtr &root) { if (full_batch) { return; } + + // in grad accumulation mode, if use dynamic lr, it has some parameters in optimizer which no used for first graph, + // but used for second graph(such as global_step), so can not change their shapes + int64_t grad_accumulation_step = ParallelContext::GetInstance()->grad_accumulation_step(); + if (grad_accumulation_step > 1) { + MS_LOG(INFO) << "In grad accumulation mode, do not handle no used parameters"; + return; + } + auto dev_num = g_device_manager->stage_device_num(); auto parameters = root->parameters(); for (auto ¶meter : parameters) {