You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by zh...@apache.org on 2023/10/10 07:10:16 UTC
[singa] branch dev-postgresql updated: Add the optimizer for model selection
This is an automated email from the ASF dual-hosted git repository.
zhaojing pushed a commit to branch dev-postgresql
in repository https://gitbox.apache.org/repos/asf/singa.git
The following commit(s) were added to refs/heads/dev-postgresql by this push:
new 3ce7c333 Add the optimizer for model selection
new 9d8a2f5e Merge pull request #1109 from zmeihui/23-10-9-optimizer
3ce7c333 is described below
commit 3ce7c3336ef4c9db70a2b5e47f13c6094bf7c5a4
Author: zmeihui <me...@bit.edu.cn>
AuthorDate: Mon Oct 9 19:07:51 2023 +0800
Add the optimizer for model selection
---
.../model_selection_psql/ms_mlp/train_ms_model.py | 28 +++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/examples/model_selection_psql/ms_mlp/train_ms_model.py b/examples/model_selection_psql/ms_mlp/train_ms_model.py
index b87af52b..0283b91e 100644
--- a/examples/model_selection_psql/ms_mlp/train_ms_model.py
+++ b/examples/model_selection_psql/ms_mlp/train_ms_model.py
@@ -32,8 +32,34 @@ from PIL import Image
np_dtype = {"float16": np.float16, "float32": np.float32}
-# singa_dtype = {"float16": tensor.float16, "float32": tensor.float32}
singa_dtype = {"float32": tensor.float32}
+# singa_dtype = {"float16": tensor.float16, "float32": tensor.float32}
+
+### MSOptimizer
+class MSOptimizer(Optimizer):
+ def __call__(self, loss):
+ pn_p_g_list = self.call_with_returns(loss)
+ # print ("optimizer1 before self.step()")
+ # print ("optimizer1 before print len(pn_p_g_list): \n", len(pn_p_g_list))
+ self.step()
+ # print ("optimizer1 after print len(pn_p_g_list): \n", len(pn_p_g_list))
+ # print ("optimizer1 after self.step()")
+ return pn_p_g_list
+
+ def call_with_returns(self, loss):
+ # print ("call_with_returns before apply loss.data: \n", loss.data)
+ pn_p_g_list = []
+ for p, g in autograd.backward(loss):
+ if p.name is None:
+ p.name = id(p)
+ self.apply(p.name, p, g)
+ # print ("call with returns")
+ # print ("p.name: \n", p.name)
+ # print ("p.data: \n", p.data)
+ # print ("g.data: \n", g.data)
+ pn_p_g_list.append([p.name, p, g]) # need iterables
+ # print ("call_with_returns after apply loss.data: \n", loss.data)
+ return pn_p_g_list
# Data augmentation