docs: def initialize_variables(sess, saver, logdir, checkpoint=None, resume=None):
    """Initialize or restore variables from a checkpoint if available.
  
    Args:
      sess: Session to initialize variables in.
      saver: Saver to restore variables.
      logdir: Directory to search for checkpoints.
      checkpoint: Specify what checkpoint name to use; defaults to most recent.
      resume: Whether to expect recovering a checkpoint or starting a new run.
  
    Raises:
      ValueError: If resume expected but no log directory specified.
      RuntimeError: If no resume expected but a checkpoint was found.
    """
    sess.run(tf.group(
        tf.local_variables_initializer(),
        tf.global_variables_initializer()))
    if resume and not (logdir or checkpoint):
      raise ValueError('Need to specify logdir to resume a checkpoint.')
    if logdir:
      state = tf.train.get_checkpoint_state(logdir)
      if checkpoint:
        checkpoint = os.path.join(logdir, checkpoint)
      if not checkpoint and state and state.model_checkpoint_path:
        checkpoint = state.model_checkpoint_path
      if checkpoint and resume is False:
        message = 'Found unexpected checkpoint when starting a new run.'
        raise RuntimeError(message)
      if checkpoint:
        saver.restore(sess, checkpoint)