class_docstr: Update rule of Zeiler's ADADELTA.
  
  See :class:`~chainer.optimizers.AdaDelta` for the default values of the
  hyperparameters.
  
  Args:
      parent_hyperparam (~chainer.optimizer.Hyperparameter): Hyperparameter
          that provides the default values.
      rho (float): Exponential decay rate of the first and second order
          moments.
      eps (float): Small value for the numerical stability.
class_docstr_tok: ["Update","rule","of","Zeiler","'s","ADADELTA",".","See",":","class",":","`","~chainer.optimizers.AdaDelta","`","for","the","default","values","of","the","hyperparameters",".","Args",":","parent_hyperparam","(","~chainer.optimizer.Hyperparameter",")",":","Hyperparameter","that","provides","the","default","values",".","rho","(","float",")",":","Exponential","decay","rate","of","the","first","and","second","order","moments",".","eps","(","float",")",":","Small","value","for","the","numerical","stability","."]
code: def update_core_cpu(self, param):
      grad = param.grad
      if grad is None:
          return
      msg, msdx = self.state["msg"], self.state["msdx"]
      rho = self.hyperparam.rho
      eps = self.hyperparam.eps
  
      msg *= rho
      msg += (1 - rho) * grad * grad
      dx = numpy.sqrt((msdx + eps) / (msg + eps)) * grad
      msdx *= rho
      msdx += (1 - rho) * dx * dx
      param.data -= dx
  
file_path: chainer/chainer/optimizers/ada_delta.py
imports: import numpy
  import chainer
  from chainer.backends import cuda
  from chainer import optimizer
  from chainer import types
label_desc: Use image node_id 3 for calling the AdaDeltaRule obj's underlying member method code with example usage: obj.update_core_cpu(param) without return types