【tensorboard+T-SNE】对数据进行降维可视化

tensorboard自带降维可视化的功能,在tensorboardPROJECTOR栏中,如图所示。
在这里插入图片描述
上图是tensorbaord-PROJECTOR栏的概览,左侧有一些选项,中间是数据点,话不多说,上代码。

概述

使用tensorboard进行降维的主要步骤如下:

1.生成数据,格式是[num_of_samples,num_of_dimensions]
2.生成元数据用于描述每个数据点(这个是可选的,比如每个点的标签,方便后面使用标签进行上色)
3.构建tf.Variable
4.初始化变量并配置

对单个张量进行降维可视化

import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.contrib.tensorboard.plugins import projector

def visualization(data,labels):
	# 注意data的格式
	var = tf.Variable(data,name="var")
	# 构建元数据文件
	with open('metadata.tsv','w') as metadata:
		metadata.write('Index\tLabel\n')
		for i,label in enumerate(labels):
			metadata.write('%d\t%d\n'%(i,label))
	with tf.Session() as sess:
	    saver = tf.train.Saver([var])
	    sess.run(var.initializer)
        saver.save(sess, os.path.join('logs/', 'temp.ckpt'))
        config = projector.ProjectorConfig()
        embedding = config.embeddings.add()
        embedding.tensor_name = var.name
        embedding.metadata_path = 'metadata.tsv'
        projector.visualize_embeddings(tf.summary.FileWriter('logs/'), config)

构造好数据和标签后,直接使用上述函数即可在logs/生成可视化必要的文件,在该目录运行tensorboard即可。

对多个张量进行降维可视化

import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.contrib.tensorboard.plugins import projector

def visualization(data1,data2,labels):
	# 注意data的格式
	var1 = tf.Variable(data1,name="var1")
	var2 = tf.Variable(data2,name="var2")
	# 构建元数据文件
	with open('metadata.tsv','w') as metadata:
		metadata.write('Index\tLabel\n')
		for i,label in enumerate(labels):
			metadata.write('%d\t%d\n'%(i,label))
	vars = [var1,var2]
	with tf.Session() as sess:
	    saver = tf.train.Saver(vars )
	    sess.run(tf.global_variables_initializer())
        saver.save(sess, os.path.join('logs/', 'temp.ckpt'))
        config = projector.ProjectorConfig()
        for var in vars:
	        embedding = config.embeddings.add()
	        embedding.tensor_name = var.name
	        embedding.metadata_path = 'metadata.tsv'
        projector.visualize_embeddings(tf.summary.FileWriter('logs/'), config)

在图示区域可以选择对应的张量进行可视化
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值