From 73d97c5cf30e54cd4bdca9935198304e53a9842a Mon Sep 17 00:00:00 2001 From: duoliduoli Date: Mon, 25 Apr 2022 11:22:37 +0800 Subject: [PATCH 1/2] Update graph_constructor.cc --- tensorflow/core/graph/graph_constructor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorflow/core/graph/graph_constructor.cc b/tensorflow/core/graph/graph_constructor.cc index 16ce30b592c..3f0d487b8f9 100644 --- a/tensorflow/core/graph/graph_constructor.cc +++ b/tensorflow/core/graph/graph_constructor.cc @@ -1980,7 +1980,7 @@ void GetStagingEdges(const Graph& dest, const std::unordered_set& source } } - std::vector is_var_relate(dest.num_nodes(), false); + std::vector is_var_relate(dest.num_node_ids(), false); while (!q.empty()) { const Node* node = q.front(); q.pop(); From f73a85c359aca872cd3ee54ea5d52c386e966765 Mon Sep 17 00:00:00 2001 From: duoliduoli Date: Tue, 7 Jun 2022 14:15:45 +0800 Subject: [PATCH 2/2] Update adagrad.py fix ps0 high CPU load --- tensorflow/python/training/adagrad.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tensorflow/python/training/adagrad.py b/tensorflow/python/training/adagrad.py index 46eec12748a..80a2e91f24a 100644 --- a/tensorflow/python/training/adagrad.py +++ b/tensorflow/python/training/adagrad.py @@ -97,6 +97,9 @@ def _prepare(self): learning_rate = self._call_if_callable(self._learning_rate) self._learning_rate_tensor = ops.convert_to_tensor( learning_rate, name="learning_rate") + global_step_var = training_util.get_or_create_global_step() + with ops.colocate_with(self._learning_rate_tensor): + self._global_step_on_worker = array_ops.identity(global_step_var) + 1 def _apply_dense(self, grad, var): acc = self.get_slot(var, "accumulator") @@ -139,14 +142,13 @@ def _hash_table_apply_sparse(self, grad, var, indices): def _resource_apply_sparse(self, grad, var, indices): acc = self.get_slot(var, "accumulator") if isinstance(var, kv_variable_ops.EmbeddingVariable): - global_step = training_util.get_or_create_global_step() return training_ops.kv_resource_sparse_apply_adagrad( var.handle, acc.handle, math_ops.cast(self._learning_rate_tensor, grad.dtype), grad, indices, - global_step, + self._global_step_on_worker, use_locking=self._use_locking) else: return training_ops.resource_sparse_apply_adagrad(