import os import tensorflow as tf from tensorflow.contrib.tensorboard.plugins import projector from tensorflow.python.training.summary_io import SummaryWriterCache def accuracy_of_minibatch(labels, predictions, name='accuracy'): ''' both inputs are `tf.int64` ''' with tf.name_scope('MinibatchAccuracy'): accuracy = tf.reduce_mean( tf.cast( tf.equal(labels, predictions), tf.float32 ) ) tf.summary.scalar(name, accuracy) return accuracy def visualize_embeddings(logdir, var_list, tsv_list): assert len(var_list) == len(tsv_list), 'Inconsistent length of lists' config = projector.ProjectorConfig() for v, f in zip(var_list, tsv_list): embedding = config.embeddings.add() embedding.tensor_name = v.name if f is not None: _, filename = os.path.split(f) meta_tsv = os.path.join(logdir, filename) tf.gfile.Copy(f, meta_tsv) embedding.metadata_path = filename # save relative path writer = SummaryWriterCache.get(logdir) projector.visualize_embeddings(writer, config)