[optimizer] Add optimizer wrapped
authorParichay Kapoor <pk.kapoor@samsung.com>
Fri, 10 Dec 2021 12:29:28 +0000 (21:29 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Wed, 20 Apr 2022 10:47:00 +0000 (19:47 +0900)
commit50c0116795fbe7b616b2a703181e0c79847777a0
tree1a3e006a84e1c102fed5aa34116e8f3355ef8547
parentc92c0d9d278627031496e2ebc393cea8e6e90c10
[optimizer] Add optimizer wrapped

Add optimizer wrapped which wraps the opitmizer and the learning rate
scheduler.
In order to be backward compatible, each optimizer must support setting
the learning rate, decay rate and decay steps, even for new optimizers.
To make this extensible without each optimizer storing this information
and merging with the learning rate schedulers, and not creating new
interfaces, optimizer wrapped is added.
Optimizer wraps around optimizer, and owns both the optimizer and
learning rate scheduler. If the properties of LR or decay are passed to
the optimizer, they are intercepted by the optimizer wrapped and passed
to the learning rate scheduler appropriately.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
nntrainer/optimizers/meson.build
nntrainer/optimizers/optimizer_wrapped.cpp [new file with mode: 0644]
nntrainer/optimizers/optimizer_wrapped.h [new file with mode: 0644]