class_docstr: Trainer extension to shift an optimizer attribute magically by Vaswani.
  
  Args:
      attr (str): Name of the attribute to shift.
      rate (float): Rate of the exponential shift. This value is multiplied
          to the attribute at each call.
      init (float): Initial value of the attribute. If it is ``None``, the
          extension extracts the attribute at the first call and uses it as
          the initial value.
      target (float): Target value of the attribute. If the attribute reaches
          this value, the shift stops.
      optimizer (~chainer.Optimizer): Target optimizer to adjust the
          attribute. If it is ``None``, the main optimizer of the updater is
          used.
docstr: Update requested variable values.
docstr_tok: ["Update","requested","variable","values","."]
code: def _update_value(self, optimizer, value):
      """Update requested variable values."""
      setattr(optimizer, self._attr, value)
      self._last_value = value
  
imports: import collections
  import logging
  import math
  import numpy
  from chainer import cuda
  from chainer import functions
  from chainer import training
  from chainer.training import extension
  from chainer.training.updaters.multiprocess_parallel_updater import gather_grads, gather_params, scatter_grads
label_desc: Use image node_id 6 for calling the VaswaniRule obj's underlying member method code with example usage: obj._update_value(optimizer, value) without return types