diff --git a/paddle/fluid/imperative/partial_grad_engine.cc b/paddle/fluid/imperative/partial_grad_engine.cc index 84ba60fef80d5f82b4bc45ec71b537608824c8e6..c1ec675a5570708519531139dc7b5a418713908c 100644 --- a/paddle/fluid/imperative/partial_grad_engine.cc +++ b/paddle/fluid/imperative/partial_grad_engine.cc @@ -137,10 +137,12 @@ static void GetGraphInfoBetweenTargets( } for (auto &pending_node : node->GradPendingNodes()) { + for (auto &pending_op : *pending_node) { + preceding_ops[&pending_op].insert(op); + } if (visited.count(pending_node.get()) == 0) { visited.insert(pending_node.get()); for (auto &pending_op : *pending_node) { - preceding_ops[&pending_op].insert(op); q.emplace(&pending_op, pending_node.get()); } }