'Installs and initializes optimizers.
Parameters
kvstore : str or KVStore
Default `\'local\'`.
optimizer : str or Optimizer
Default `\'sgd\'`
optimizer_params : dict
Default ``((\'learning_rate\', 0.01),)``. The default value is not a dictionary,
just to avoid pylint warning of dangerous default values.
force_init : bool
Default ``False``, indicating whether we should force re-initializing the
optimizer in the case an optimizer is already installed.'

def init_optimizer(self, kvstore='local', optimizer='sgd', optimizer_params=(('learning_rate', 0.01),), force_init=False):

    assert (self.binded and self.params_initialized)
    if (self.optimizer_initialized and (not force_init)):
        self.logger.warning('optimizer    already    initialized,    ignoring.')
        return
    for module in self._modules:
        module.init_optimizer(kvstore=kvstore, optimizer=optimizer, optimizer_params=optimizer_params, force_init=force_init)
    self.optimizer_initialized = True
