code: def notify_about_new_variables(callback):
    
    def _tracking_creator(getter, **kwargs):
      v = getter(**kwargs)
      callback(v)
      return v
  
    with tf.variable_creator_scope(_tracking_creator):
      yield
docs: Calls `callback(var)` for all newly created variables.
  
    Callback should not modify the variable passed in. Use cases that require
    variables to be modified should use `variable_creator_scope` directly and sit
    within the variable creator stack.
  
    >>> variables = []
    >>> with notify_about_variables(variables.append):
    ...   v = tf.Variable(1.0, name='v')
    ...   w = tf.get_variable('w', [])
    >>> assert variables == [v, w]
  
    Args:
      callback: a callable taking a single argument which is a tf.Variable.
  
    Yields:
      `None` - used for contextmanager API.