code: def visualize_embeddings(summary_writer, config):
    
    logdir = summary_writer.get_logdir()
  
    # Sanity checks.
    if logdir is None:
      raise ValueError('Summary writer must have a logdir')
  
    # Saving the config file in the logdir.
    config_pbtxt = _text_format.MessageToString(config)
    path = os.path.join(logdir, _projector_plugin.PROJECTOR_FILENAME)
    with tf.io.gfile.GFile(path, 'w') as f:
      f.write(config_pbtxt)
docs: Stores a config file used by the embedding projector.
  
    Args:
      summary_writer: The summary writer used for writing events.
      config: `tf.contrib.tensorboard.plugins.projector.ProjectorConfig`
        proto that holds the configuration for the projector such as paths to
        checkpoint files and metadata files for the embeddings. If
        `config.model_checkpoint_path` is none, it defaults to the
        `logdir` used by the summary_writer.
  
    Raises:
      ValueError: If the summary writer does not have a `logdir`.