基本思想就是把测试数据输入模型,然后对模型提取的特征(未经过分类器)的部分进行降维绘图

1. 先引入包

import torch
from sklearn.manifold import TSNE # 这个是绘图关键
import random
import numpy as np
import matplotlib.pyplot as plt
import torch.nn as nn
from torchvision import datasets, transforms

2. 设置随机种子

为保证结果可复现,设置了随机种子

def setup_seed(seed):torch.manual_seed(seed)torch.cuda.manual_seed_all(seed)np.random.seed(seed)random.seed(seed)torch.backends.cudnn.benchmark = Falsetorch.backends.cudnn.deterministic = True
setup_seed(1337)

3. 准备测试数据及模型

transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])  # 对读取数据做个处理,打个包
testset = datasets.CIFAR10(root='../data/MNIST/', train=False,download=False, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=32,shuffle=False, num_workers=2)
model_file = ["centralized_net.pkl"]
model = torch.load(model_name)

4. 输入测试数据得到特征表示

model.eval()
with torch.no_grad():for i, (image_batch, label_batch) in enumerate(testloader):image_batch, label_batch = image_batch.cuda(), label_batch.cuda()label_batch = label_batch.long().squeeze()inputs = image_batchlogits, feature = model(inputs)if i == 0:feature_bank = featurelabel_bank = label_batchlogits_bank = logitselse:feature_bank = torch.cat((feature_bank, feature))label_bank = torch.cat((label_bank, label_batch))logits_bank = torch.cat((logits_bank, logits))

5. 绘图

针对feature_banklabel_bank进行绘图

 feature_bank = feature_bank.cpu().numpy()label_bank = label_bank.cpu().numpy()p, pseu = torch.max(torch.softmax(logits_bank, dim=-1), dim=-1)prob_bank = p.cpu().numpy()tsne = TSNE(2)output = tsne.fit_transform(feature_bank) # feature进行降维,降维至2维表示# 带真实值类别for i in range(10): # 对每类的数据画上特定颜色的点index = (label_bank==i)plt.scatter(output[index, 0], output[index, 1],s=5, cmap=plt.cm.Spectral)plt.legend(["0", "1", "2", "3", "4", "5", "6","7", "8", "9"])plt.show()

CIFAR10 T-SNE 绘制特征空间图相关推荐

  1. Matplotlib绘制象限图——支持中文、箭头、自定义轴线交点

    Matplotlib绘制象限图--支持中文.箭头.自定义轴线交点 1. 效果图 2. 原理 2.1 绘制象限图步骤 2.1 添加文字到图表 3. 源码 参考 这篇博客将介绍如何使用matplotlib ...

  2. nyquist图怎么画matlab,用MATLAB绘制Nyquist图

    <用MATLAB绘制Nyquist图>由会员分享,可在线阅读,更多相关<用MATLAB绘制Nyquist图(9页珍藏版)>请在人人文库网上搜索. 1.用MATLAB绘制Nyqu ...

  3. Python生物信息学⑥绘制热图及火山图

    Python生物信息学⑥绘制热图及火山图 Python生物信息学③提取差异基因 通过上Python生物信息学③提取差异基因得到了该数据集的差异分析的两个关键参数,1.差异倍数(foldchange)以 ...

  4. sangerbox平台使用(三)绘制火山图

    目前绘制火山图有很多工具,我们最常用的就是R语言,本次想向大家介绍的是一个在线工具直接绘制火山图-sangerbox 官方链接为:http://sangerbox.com/AllTools?tool_ ...

  5. ComplexHeatmap绘制热图(一)

    讲起热图,大家都会比较熟悉,绘制热图方式比较多,这里介绍的是ComplexHeatmap包绘制热图,首先配置数据,这里的自动生成一个10X10的矩阵 data=matrix(rnorm(100),nr ...

  6. R EnhancedVolcano 绘制火山图

    火山图是用于差异表达分析结果可视化的一种有效方法.今天,我们来介绍一个用于增强火山图绘制的强大 R 包:EnhancedVolcano ,该包拥有强大的绘图功能,用户可以简单的通过设置颜色.形状.大小 ...

  7. R语言绘制Vonoroi图

    deldir包绘制Voronoi图 #install.packages("deldir") library(deldir)# data set.seed(1) x <- ru ...

  8. R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩、离散色彩、梯度色彩)实战(density plot)

    R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩.离散色彩.梯度色彩)实战(density plot) 目录 R语言使用ggplot2包使用geom_density( ...

  9. R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题、轴标签设置)实战

    R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题.轴标签设置)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题.轴标签设置)实战 #仿真数据

最新文章

  1. Expectation Maximization-EM(期望最大化)-算法以及源码
  2. QT与openCV,与PCL结合!
  3. xcode 快捷_您必须知道的Xcode快捷方式
  4. 17_购物车删除商品与清空购物车
  5. [2018.04.29 T1] 图
  6. UML的简单介绍和画法
  7. ae运动模糊插件安装教程_AEPR运动模糊插件(RSMB) REVisionFX ReelSmart Motion Blur Pro v4.2.3...
  8. 电视制式 NTSC PAL SECAM
  9. 16进制转10进制c 语言算法,16进制转换算成10进制程序
  10. 搜狗输入法取消英文空格确认
  11. 《东周列国志》第六十四回 曲沃城栾盈灭族 且于门杞梁死战
  12. 年包150万的腾讯程序员,深圳房产一千万,同学聚会只能排名第16!
  13. flutter 华为审核:你的应用存在隐藏最近任务列表中应用名称的问题,不符合华为应用市场审核标准
  14. 初中英语语法(005)-时态
  15. 【C】指针的相关运算练习题
  16. 电机专用MCU芯片LCM32F037系列内容介绍
  17. PyCharm + PySide2/PySide6 外部工具配置
  18. vscode代码格式化、vetur代码格式化取消末尾添加逗号
  19. 技术干货 | 网易云信大规模聊天室系统架构解析
  20. notebook pip install 只有星号_世界上最小的船,只有四个红细胞那么长

热门文章

  1. 缺陷与出路—一个游戏开发者的反思
  2. SugarCRM之SugarAutoLoader类分析
  3. Most socially-distanced subsequence(贪心)
  4. 高矿化度矿井水深度除氟装置CH-87技术解析
  5. 「Linux」这些结构目录休想唬我
  6. SuperMap iMobile for Android中三维AR的使用
  7. drupal安装配置错误
  8. cep java_交易系统中的CEP框架
  9. 头文件定义static变量
  10. cpu要和gpu搭配吗_CPU与GPU合理搭配 整机性能当然不俗