@gradient_optimizer<EOL>def rmsprop(lr=<NUM_LIT>, damping=<NUM_LIT>, decay=<NUM_LIT>):
xk = yield<EOL>rms = np.zeros_like(xk)<EOL>for k in count():<EOL><INDENT>grad = yield xk<EOL>rms *= decay<EOL>rms += (<NUM_LIT:1> - decay) * grad**<NUM_LIT:2><EOL>xk -= lr * grad / (damping + np.sqrt(rms))<EOL><DEDENT>
RMSProp

Parameters
----------
lr : float, optional
    Learning rate (Default: 1e-3)

damping : float, optional
    Damping term (Default: 1e-12)

decay : float, optional
    Decay of the learning rate (Default: 0)