class_docstr: Update rule for RMSprop.
  
  See :class:`~chainer.optimizers.RMSprop` for the default values of the
  hyperparameters.
  
  Args:
      parent_hyperparam (~chainer.optimizer.Hyperparameter): Hyperparameter
          that provides the default values.
      lr (float): Learning rate.
      alpha (float): Exponential decay rate of the second order moment.
      eps (float): Small value for the numerical stability.
      eps_inside_sqrt (bool): When ``True``, gradient will be divided by
          :math:`\sqrt{ms + eps}` where ``ms`` is the mean square. When
          ``False`` (default), gradient will be divided by
          :math:`\sqrt{ms} + eps` instead.
          This option may be convenient for users porting code from other
          frameworks;
          see `#4754 <https://github.com/chainer/chainer/issues/4754>`__ for
          details.
class_docstr_tok: ["Update","rule","for","RMSprop",".","See",":","class",":","`","~chainer.optimizers.RMSprop","`","for","the","default","values","of","the","hyperparameters",".","Args",":","parent_hyperparam","(","~chainer.optimizer.Hyperparameter",")",":","Hyperparameter","that","provides","the","default","values",".","lr","(","float",")",":","Learning","rate",".","alpha","(","float",")",":","Exponential","decay","rate","of","the","second","order","moment",".","eps","(","float",")",":","Small","value","for","the","numerical","stability",".","eps_inside_sqrt","(","bool",")",":","When","``","True","``",",","gradient","will","be","divided","by",":","math",":","`","\\sqrt","{","ms","+","eps","}","`","where","``","ms","``","is","the","mean","square",".","When","``","False","``","(","default",")",",","gradient","will","be","divided","by",":","math",":","`","\\sqrt","{","ms","}","+","eps","`","instead",".","This","option","may","be","convenient","for","users","porting","code","from","other","frameworks",";","see","`","#","4754","<","https",":","\/\/github.com\/chainer\/chainer\/issues\/4754",">","`","__","for","details","."]
code: def update_core_gpu(self, param):
      grad = param.grad
      if grad is None:
          return
      hp = self.hyperparam
      eps = grad.dtype.type(hp.eps)
      if eps == 0:
          raise ValueError(
              "eps of RMSprop optimizer is too small for {} ({})".format(
                  grad.dtype.name, hp.eps
              )
          )
      if hp.eps_inside_sqrt:
          denom = "sqrt(ms + eps)"
      else:
          denom = "sqrt(ms) + eps"
      kernel = cuda.elementwise(
          "T grad, T lr, T alpha, T eps",
          "T param, T ms",
          """ms = alpha * ms + (1 - alpha) * grad * grad;
                 param -= lr * grad / ({});""".format(
              denom
          ),
          "rmsprop",
      )
      kernel(
          grad,
          self.hyperparam.lr,
          self.hyperparam.alpha,
          eps,
          param.data,
          self.state["ms"],
      )
  
file_path: chainer/chainer/optimizers/rmsprop.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 4 for calling the RMSpropRule obj's underlying member method code with example usage: obj.update_core_gpu(param) without return types