PROJECTOR用于将高维向量进行可视化,通过PCA,T-SNE等方法将高维向量投影到三维坐标系。
具体操作和解释见代码和注释:
import tensorflow as tf
import mnist_inference
import os
from tensorflow.contrib.tensorboard.plugins import projector
from tensorflow.examples.tutorials.mnist import input_data
batch_size = 128
learning_rate_base = 0.8
learning_rate_decay = 0.99
training_steps = 10000
moving_average_decay = 0.99
log_dir = 'log'
sprite_file = 'mnist_sprite.jpg'
meta_file = 'mnist_meta.tsv'
tensor_name = 'final_logits'
#获取瓶颈层数据,即最后一层全连接层的输出
def train(mnist):
with tf.variable_scope('input'):
x = tf.placeholder(tf.float32,[None,784],name='x-input')
y_ = tf.placeholder(tf.float32,[None,10],name='y-input')
y = mnist_inference.build_net(x)
global_step = tf.Variable(0,trainable=False)
with tf.variable_scope('moving_average'):
ema = tf.train.ExponentialMovingAverage(moving_average_decay,global_step)
ema_op = ema.apply(tf.trainable_variables())