code: def rmsprop_update(
      update, decay, learning_rate, epsilon, mu, mom, ms, mg
  ):
      """Computes a single RMSProp update."""
      ms = tf.square(update) * (1.0 - decay) + ms * decay
      if mg is not None:  # centered
          mg = update * (1.0 - decay) + mg * decay
          denominator = ms - tf.square(mg) + epsilon
      else:
          denominator = ms + epsilon
      mom = (mu * mom) + (
          learning_rate * update * tf.math.rsqrt(denominator)
      )
      return mom, ms, mg
  
file_path: sonnet/sonnet/src/optimizers/rmsprop.py
imports: import itertools
  from typing import Optional, Sequence, Union
  from sonnet.src import base
  from sonnet.src import once
  from sonnet.src import types
  from sonnet.src import utils
  from sonnet.src.optimizers import optimizer_utils
  import tensorflow
label_desc: Use image node_id 1 for calling a global function with example usage: rmsprop_update(update, decay, learning_rate, epsilon, mu, mom, ms, mg) and returns: mom,  ms,  mg