Tensorboard教程:高维向量可视化

【小技巧】机器学习中可视化高维向量的两种方法PCA和t-SNE,以及其原理介绍和代码示例(附代码) 为了可视化高维数据(比如你的256维向量)在低维空间(通常是2D或3D)的分布,常用的方法包括主成分分析(PCA)和t-SNE。这两种方法可以帮助我们理解数据在高维空间中的内在结构。下面,我会展示如何使用Python的库和matplotlib来可视化这些向量。我将使用PCA和t-SNE两种方法来降维,并在3D平面上展示结果。如果你有标签数据,这将有助于我们看到不同簇的分布。import os""""""# 使用PCA将数据降到3维# 使用t-SNE将数据降到3维。 阅读详情

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())

    with tf.variable_scope('loss_function'):
        loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y,labels=tf.argmax(y_,1)))

    with tf.variable_scope('train_step'):
        learning_rate = tf.train.exponential_decay(
            learning_rate_base,
            global_step,
            mnist.train.num_examples/batch_size,
            learning_rate_decay,
            staircase=True
        )

        train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss,global_step=global_step)

        train_op = tf.group(train_step,ema_op)

    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        for i in range(training_steps):
            xs,ys = mnist.train.next_batch(batch_size)
            _,loss_value,step = sess.run([train_op,loss,global_step],feed_dict={x:xs,y_:ys})

            if step % 100 == 0 :
                print('step:{},loss:{}'.format(step,loss_value))

        final_result = sess.run(y,feed_dict={x:mnist.test.images})

    return final_result

def visualisation(final_result):
    #定义一个新向量保存输出层向量的取值
    y = tf.Variable(final_result,name=tensor_name)
    #定义日志文件writer
    summary_writer = tf.summary.FileWriter(log_dir)

    #ProjectorConfig帮助生成日志文件
    config = projector.ProjectorConfig()
    #添加需要可视化的embedding
    embedding = config.embeddings.add()
    #将需要可视化的变量与embedding绑定
    embedding.tensor_name = y.name

    #指定embedding每个点对应的标签信息,
    #这个是可选的,没有指定就没有标签信息
    embedding.metadata_path = meta_file
    #指定embedding每个点对应的图像,
    #这个文件也是可选的,没有指定就显示一个圆点
    embedding.sprite.image_path = sprite_file
    #指定sprite图中单张图片的大小
    embedding.sprite.single_image_dim.extend([28,28])

    #将projector的内容写入日志文件
    projector.visualize_embeddings(summary_writer,config)

    #初始化向量y,并将其保存到checkpoints文件中,以便于TensorBoard读取
    sess = tf.InteractiveSession()
    sess.run(tf.global_variables_initializer())
    saver = tf.train.Saver()
    saver.save(sess,os.path.join(log_dir,'model'),training_steps)
    summary_writer.close()

def main(_):
    mnist = input_data.read_data_sets('MNIST_data',one_hot=True)

    final_result = train(mnist)
    visualisation(final_result)

if __name__ == '__main__':
    tf.app.run()



生成sprite图和meta文件:

import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
import os
from tensorflow.examples.tutorials.mnist import input_data

log_dir = './log'
sprite_file = 'mnist_sprite.jpg'
meta_file = 'mnist_meta.tsv'

def create_sprite_image(images):
    if isinstance(images,list):
        images = np.array(images)
    #获取图像的高和宽
    img_h = images.shape[1]
    img_w = images.shape[2]
    #对图像数目开方,并向上取整,得到sprite图每边的图像数目
    num = int(np.ceil(np.sqrt(images.shape[0])))
    #初始化sprite图
    sprite_image = np.zeros([img_h*num,img_w*num])
    #为每个小图像赋值
    for i in range(num):
        for j in range(num):
            cur = i * num + j
            if cur < images.shape[0]:
                sprite_image[i*img_h:(i+1)*img_h,j*img_w:(j+1)*img_w] = images[cur]

    return sprite_image

if __name__ == '__main__':
    mnist = input_data.read_data_sets('MNIST_data',one_hot=False)
    #黑底白字变成白底黑字
    to_visualise = 1 - np.reshape(mnist.test.images,[-1,28,28])
    sprite_image = create_sprite_image(to_visualise)

    #存储展示图像
    path_mnist_sprite = os.path.join(log_dir,sprite_file)
    plt.imsave(path_mnist_sprite,sprite_image,cmap='gray')
    plt.imshow(sprite_image,cmap='gray')

    #存储每个下标对应的标签
    path_mnist_metadata = os.path.join(log_dir,meta_file)
    with open(path_mnist_metadata,'w') as f:
        f.write('Index\tLabel\n')
        for index,label in enumerate(mnist.test.labels):
            f.write('{}\t{}\n'.format(index,label))


Sprite图如图 

è¿éåå¾çæè¿°
执行tensorboard –logdir=log后,浏览器打开localhost:6006,即可观察到相应结果。 

è¿éåå¾çæè¿°
可见每个高维向量都被投影到一个三维坐标系中,同一个类别的向量彼此靠近,形成一个一个的簇,且界限明显,可见分类效果较好。

è¿éåå¾çæè¿°

同时左边栏中还有一些可选项: 
 
Label by:可以选择Label和Index,将鼠标放到相应的点上,可以显示该点的Label或者Index

Color by:可选Label和No color map,前者会根据不同的label给点赋予不同的颜色,后者不涂色,一律为黑白,如图所示。 

è¿éåå¾çæè¿°
在下方栏中,我们还可以选择T-SNE,PCA,CUSTOM等降维方法,默认选择PCA。

T-SNE效果如图: 

è¿éåå¾çæè¿°
在右方栏中,我们可以根据Label查找某个类,如图,我们可以找到Label为4的点。 

è¿éåå¾çæè¿°

 

TensorBoard-PROJECTOR-高维向量可视化 PROJECTOR用于将高维向量进行可视化,通过PCA,T-SNE等方法将高维向量投影到三维坐标系。 具体操作和解释见代码和注释: import tensorflow as tf import mnist_inference import os from tensorflow.contrib.tensorboard.plugins import projector from tensor... 阅读详情

相关推荐

深入理解词向量-词向量的可视化

1、概述 词向量是自然语言分词在词空间中的表示,词之间的距离代表了分词之间的相似性,我们可以使用gensim,tensorflow等框架非常方便的来实现词向量。但词向量在词空间的分布到底是什么样的,如何更好的理解词向量是一个非常重要的问题。本文将使用tensorbord以及相关的降维技术在三维空间中模拟词向量在高维空间的分布。 2、训练词向量 词向量的训练是一个无监督的学习过程,这并不是本文...

amao1998的博客 1万+

python高维向量的可视化_用Python绘制多维向量

从这个问题上很难确定我的答案是否相关,但这里是我最好的猜测。我相信DeltasScience是在问多维向量通常是如何绘制到二维空间的,就像散点图一样。我认为最好的答案是通常会执行某种降维算法。换句话说,这不是通过找到正确的matplotlib代码来实现的,而是将数据放入正确的形状(一个列表用于X轴,另一个列表用于Y轴),然后使用典型的matplotlib方法进行打印:import numpy as...

weixin_36272649的博客 2936

tensorboard的可视化及模型可视化

待整理How to Check-Point Deep Learning Models in KerasLossWise Tensorboard 中文社区谷歌发布TensorBoard API,让你自定义机器学习中的可视化 查找tensorflow安装的位置pip show tensorflow-gpuName: tensorflow-gpu Version: 1.0.1 Summary: Tens

jiandanjinxin的专栏 1万+

TensorBoard可视化高维向量

对图像进行卷积的过程可以看作是特征提取的过程。在图像迁移学习中可以将一组目标问题的图片通过训练好的卷积层得到瓶颈层,这些瓶颈层向量就是多个高维向量。如果在目标问题图像数据集上同一种类的图片在经过卷积层之后得到的瓶颈层向量在空间上比较接近,那么这样迁移学习得到的结果就可能会更好。 TensorBoard提供了PROJECTOR界面来可视化高维向量之间的关系。PROJECTOR要求用户准备一个sprite图像(所谓sprite图像就是将一组图片组合成一整张大图片)和一个tsv文件给处每张图片对应的标签信息。 c

liugan528的博客 1381

一文带你玩转 TensorBoard:可视化 FashionMNIST 数据集

通过本篇文章便可了解了使用 TensorBoard 对深度学习模型进行数据记录和可视化分析,提高模型开发的效率和质量。同时,通过对 FashionMNIST 数据集的加载和展示,还可以学习到如何使用 PyTorch 处理和展示图像数据。

m0_73778337的博客 1352

【深度学习】tensorboard可视化网页详解

训练模型时可视化必不可少。本文对tensorboard可视化网页的模块功能进行详细解释。

qq_44878985的博客 3999

Tensorboard高维向量可视化

Tensorflow高维向量可视化 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow1.4.0 python3.5.0 MNIST数据集将四个文件下载后放到当前目录下的MNIST_data文件夹下 高维向量表示 为了更加直观的了解emb...

泛用演化计算、通用人工智能优化模型 8105

词向量可视化:用TensorBoard或PCA探索词向量空间

本文介绍了词向量可视化的两种主要方法:TensorBoard和PCA降维。词向量可视化是NLP中探索词向量空间关系的重要技术。TensorBoard通过嵌入映射直观展示词向量,操作步骤包括准备词向量、配置日志和启动可视化。PCA则通过降维将高维词向量转为2D/3D散点图,便于分析词间相似性。文章提供了完整的Python代码示例,包括加载预训练模型、PCA降维和可视化过程。此外,还展示了一个机器翻译案例,涵盖环境配置、数据处理、模型训练和向量可视化全流程,帮助读者理解词向量在具体NLP任务中的应用。

数据知道的博客 8752

python高维向量的可视化_Tensorboard教程:高维向量可视化

Tensorflow高维向量可视化觉得有用的话,欢迎一起讨论相互学习~参考文献强烈推荐Tensorflow实战Google深度学习框架实验平台:Tensorflow1.4.0python3.5.0MNIST数据集将四个文件下载后放到当前目录下的MNIST_data文件夹下高维向量表示为了更加直观的了解embedding 向量的效果,TensorBoard 提供了PROJECTOR 界面来可视化高维...

weixin_39733805的博客 1381

调用D3D11硬解码和渲染VideoProcessor版本

在https://blog.youkuaiyun.com/robothn/article/details/78781321一文中使用shader来显示FFMPEG硬解码后的YUV420P,本文调用D3D11的videoprocessor来进行图像空间变换和尺寸变换,取得了较好的效果。 1.初始化D3D11设备、videodevice等数据结构 FFMPEG调用D3D11硬解码,获取其对应的device,videodevice。。。 FFMPEG使用av_hwdevice_find_type_by_name调用D3d11

zlyadvocate的博客 9285

四阶龙格库塔方法求解一次常微分方程组

四阶龙格库塔方法求解一次常微分方程组一、写在前面二、四阶龙格库塔方法三、使用四阶龙格库塔方法求解一次常微分方程组 一、写在前面 龙格库塔方法是数值求解常微分非线性方程的有利工具,计算精度较高,通过缩短步进距离和增加阶数可以进一步控制误差范围。工程上较为常用的是四阶龙格库塔算法(R-K4),在计算收敛的情况下往往可以得到比较好的结果。 二、四阶龙格库塔方法 这里简单介绍一下算法的具体实现过程,不做详细的推导。其求解的问题是形如方程: y˙=f(y,t),其中t∈[t0,t1]初值y(t0)=c0 \dot{y

HelloWorldTM的博客 2万+

【Pytorch学习笔记十】使用Tensorboard在 Pytorch 中进行可视化(Tensorboard详细使用教程)

Tensorboard是tensorflow内置的一个可视化工具,它通过将tensorflow程序输出的日志文件的信息可视化,使得tensorflow程序的理解、调试和优化更加简单高效。它可以帮助我们理解整个神经网络的学习过程、数据的分布、性能瓶颈等等。

QHCV的博客 4601

VS Code配置Java开发环境避坑指南:从JDK到Spring Boot插件全流程

本文详细介绍了在VS Code中配置Java开发环境的完整流程,涵盖JDK选择、环境变量配置、核心插件安装、构建工具优化及Spring Boot项目专项设置。特别针对常见问题提供避坑方案,帮助开发者快速搭建高效稳定的开发环境,提升Java和Spring Boot开发效率。

weixin_28839699的博客 977

tensorflow之应用tensorboard.plugins.projector实现tensorboard高维向量可视化

1.首先导入响应的包 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #PROJECTOR用于将高维向量进行可视化,通过PCA,T-SNE等方法将高维向量投影到三维坐标系 from tensorflow.contrib.tensorboard.plugins import pr...

lyy的博客 2904

Jetson设备EXT4文件系统修复实战:从superblock损坏到系统恢复

本文详细介绍了Jetson设备因异常断电等原因导致EXT4文件系统superblock损坏后的诊断与修复实战。通过从健康设备移植fsck工具、使用备份超级块等步骤,指导用户逐步恢复系统,并提供了数据备份与预防措施,帮助用户有效应对嵌入式AI开发中的存储故障。

theta的博客 592

注意力机制模块:CVPR 2026 新宠:MLLA(多尺度线性注意力)即插即用,在 YOLO 和 ConvNeXt 上全面涨点

MLLA核心创新点与实践价值摘要(146字) 清华大学LeapLab团队通过解构Mamba模型,发现其核心优势源于遗忘门机制与块设计,而非传统SSM架构。基于此提出的MLLA模块创新性地将这两项设计融入线性注意力框架:1)用位置编码替代循环计算保留遗忘门的位置感知能力;2)通过门控投影+DWConv+MLP重构高效块结构。在COCO检测任务中,MLLA使小目标AP提升11.6%而仅损失6%FPS,支持ONNX/TensorRT全链路部署,代码已开源。该工作为高分辨率视觉任务提供了近乎零代价的性能提升方案。

ZXSXJ的博客 155

告别高维数据困惑:TensorBoard Projector可视化实战指南

你是否还在为高维数据难以解释而烦恼?是否想让嵌入向量(Embedding)的关系变得直观可见?本文将通过实战案例,带你掌握TensorBoard Projector(嵌入投影仪)的核心功能,轻松实现高维数据可视化。读完本文,你将能够: - 快速搭建可视化环境并生成嵌入数据 - 掌握降维算法(PCA/T-SNE)的选择策略 - 通过交互式探索发现数据中的隐藏模式 - 结合元数据标签深入分析聚类结果

gitblog_00440的博客 772

JavaScript教程-字符集,Unicode转义序列,标识符,数据类型,数字,未定义值,浮点数,字符串,引用数据类型,类型检测,类型转换,运算符,关系运算符,

前端学习

VAN 212

tensorboard可视化_Tensorboard(2.x)-PROJECTOR-高维向量可视化(避免踩坑)[附远程服务器访问]...

最近在做科研的时候需要对一组高维向量降维可视化。比较下,tensorboard的可视化效果最好,且提供了很方便的降维算法api,交互界面也相对友好。网上的教程tensorboard版本相对较早,并且用的数据是tensorflow官方提供的数据,导致在实现过程中踩了不少坑,最后查阅了github官方源码和一些资料后才成功实现。文件目录|--demo |-log_visual #te...

weixin_39595310的博客 751

华为OD机试 - 去除多余空格(Python/JS/C/C++ 2024 E卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。条件约束:输入为两行字符串:第一行:待去除多余空格的文本,用例保证如果有单引号,则单引号成对出现,且单引号可能有多对。 第二

学Java,找哪吒 1216

全新YOLOv11一文弄懂 | YOLOv11网络结构解读 、yolov11.yaml配置文件详细解读与说明、模型训练参数详细解析 | 通俗易懂!入门必看系列!

本文全面介绍了YOLOv11目标检测算法,包含网络结构解析、yaml配置文件详解及训练教程。YOLOv11通过改进的C3k2f模块、SPPF和C2PSA注意力机制等创新设计,在COCO数据集上实现了比YOLOv8更优的性能。文章详细解读了yolov11.yaml配置文件的参数设置、主干网络(backbone)和头部网络(head)结构,并提供了完整的训练代码示例和参数说明。训练部分涵盖了模型选择、参数设置及优化技巧,包括epochs、batch size、学习率等关键参数的调整建议。最后总结了YOLOv11

Ai缝合怪、助力小伙伴高效发论文 3万+

tensorflow生成图片标签_Tensorboard高维向量可视化 + 解决标签和图片不显示BUG

1.前言本文就使用tensorboard进行高维向量可视化过程中出现的一些bug和问题,进行一次总结,帮助那些和我一样的小白快速上手Tensorboard高维向量可视化。这里我先展示下最近我做的高维向量可视化的成果,蓝色是非事故图片,红色是事故图片。从结果上看出来,模型对事故和非事故的区分能力还算可以。事故和非事故二分类结果那么如何快速上手一个空间向量可视化过程,查看模型分类结果的空间分布呢?这里...

weixin_39959569的博客 1190

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TensorBoard可视化教程:如何有效监控和调试TensorFlow模型

TensorBoard是TensorFlow官方提供的强大可视化工具,能够帮助开发者实时监控模型训练过程、分析网络结构和调试性能瓶颈。本教程将带你快速掌握TensorBoard的核心功能与使用方法,让你的TensorFlow模型开发效率提升30%! ## 为什么选择TensorBoard? 在深度学习模型开发中,我们常常需要: - 追踪损失值和准确率的变化趋势 - 分析模型参数的分布和梯度情况

gitblog_00664的博客 934

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

UniHacker:3步完成 Unity 国际版与 Unity Hub 补丁的完整指南

如果你不想为 Unity 授权付费,或需要多个引擎版本做学习测试,UniHacker 可以在 Windows、macOS、Linux 上修补 Unity 编辑器与 Unity Hub 主程序的许可证逻辑,让你不登录直接进入编辑器。 ## 它适合谁用 三类用户最常见的使用情形如下: | 用户类型 | 典型场景 | | --- | --- | | 学生 / 自学者 | 学习 Unity 编辑器功

gitblog_00165的博客 806

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

background图片不显示_Tensorboard高维向量可视化 + 解决标签和图片不显示BUG

1.前言本文就使用tensorboard进行高维向量可视化过程中出现的一些bug和问题,进行一次总结,帮助那些和我一样的小白快速上手Tensorboard高维向量可视化。这里我先展示下最近我做的高维向量可视化的成果,蓝色是非事故图片,红色是事故图片。从结果上看出来,模型对事故和非事故的区分能力还算可以。事故和非事故二分类结果那么如何快速上手一个空间向量可视化过程,查看模型分类结果的空间分布呢?这里...

weixin_39963341的博客 361
上一篇: TensorBoard讲解
下一篇: tensorboard同时显示训练数据和测试数据的曲线
linux_win
博客等级 码龄8年 4粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值