#594 [2.1]master-adapte-optimizer

Merged
Erpim merged 16 commits from frelam/MSAdapter:master-adapte-optimizer into master 10 months ago
frelam reviewed 10 months ago
msadapter/pytorch/optim/optimizer.py
@@ -0,0 +151,4 @@
update_group(g, ng) for g, ng in zip(groups, saved_groups)]
self.__setstate__({'state': state, 'param_groups': param_groups})

def step(self, grads, closure=None):
frelam commented 10 months ago
这里用step套在construct外层的原因是: 1. 发现有一些用户的自定义优化器, 会重写step函数。在step函数中用到很多self.state[p] = xxx(修改类成员变量), p.add_下划线操作。 这部分实际上mindspore图模式是不能支持的。 不写在construct里头, 可以避免其进图。 2. 如果construct套在step外头, 其实每一个子类优化器, 都需要这么写 比如sgd: ``` def step(self, grads): ms_sgd.construct() ``` 并不能复用construct函数。
frelam reviewed 10 months ago
frelam reviewed 10 months ago
frelam reviewed 10 months ago
msadapter/pytorch/optim/optimizer.py
@@ -0,0 +52,4 @@
# self.__class__.step.hooked = True

def register_step_pre_hook():
raise NotImplementedError("For optimizer, 'register_step_pre_hook' is not supported yet.")
frelam commented 10 months ago
hook类方法待实现。
frelam reviewed 10 months ago
testing/ut/pytorch/optim/test_optim.py
@@ -0,0 +10,4 @@
weight = ms_torch.nn.Parameter(ms_torch.tensor([1, 2]).to(ms_torch.float))
opt = ms_torch.optim.SGD([weight], lr=0.01)
for group in opt.param_groups:
group['lr'] = 0.8
frelam commented 10 months ago
在图模式下不支持该写法, 需要改成: ms.ops.assign(group['lr'], ms.Tensor(0.8))。 因为group['lr']是用一个parameter保存的, 如果换成常数, 将会变成常量, 对其修改不生效。
frelam changed title from [WIP]master-adapte-optimizer to [2.1]master-adapte-optimizer 10 months ago
Erpim reviewed 10 months ago
msadapter/pytorch/optim/__init__.py
@@ -26,0 +23,4 @@
from msadapter.pytorch.optim.adam import Adam
from msadapter.pytorch.optim.adamw import AdamW

__all__ = ['Momentum', 'LARS', 'Adam', 'AdamW', 'LazyAdam', 'AdamOffload',
Erpim commented 10 months ago
是不是考虑只对外呈现我们支持的?
frelam marked this conversation as resolved
Erpim merged commit 94420c1ca4 into master 10 months ago
The pull request has been merged as 94420c1ca4.
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This pull request currently doesn't have any dependencies.

Loading…
There is no content yet.