class_docstr: Update rule of vanilla stochastic gradient descent.
  
  See :class:`~chainer.optimizers.SGD` for the default values of the
  hyperparameters.
  
  Args:
      parent_hyperparam (~chainer.optimizer.Hyperparameter): Hyperparameter
          that provides the default values.
      lr (float): Learning rate.
class_docstr_tok: ["Update","rule","of","vanilla","stochastic","gradient","descent",".","See",":","class",":","`","~chainer.optimizers.SGD","`","for","the","default","values","of","the","hyperparameters",".","Args",":","parent_hyperparam","(","~chainer.optimizer.Hyperparameter",")",":","Hyperparameter","that","provides","the","default","values",".","lr","(","float",")",":","Learning","rate","."]
code: def update_core_gpu(self, param):
      grad = param.grad
      if grad is None:
          return
      if SGDRule._kernel is None:
          SGDRule._kernel = cuda.elementwise(
              "T grad, T lr", "T param", "param -= lr * grad", "sgd"
          )
      SGDRule._kernel(grad, self.hyperparam.lr, param.data)
  
file_path: chainer/chainer/optimizers/sgd.py
imports: from chainer.backends import cuda
  from chainer.backends import intel64
  from chainer import optimizer
  from chainer import types
label_desc: Use image node_id 3 for calling the SGDRule obj's underlying member method code with example usage: obj.update_core_gpu(param) without return types