【t-SNE可视化CNNs特征向量-代码】

article/2025/10/2 4:07:49

t-SNE可视化CNNs特征向量-代码

本博客主要是自己学习记录,参考网络,欢迎指正

整体代码

ModelPath是存放训练好的模型参数的路径
DatasetPath是存放数据集的文件夹的路径,其中不同类别放在不同的子文件夹里

也可以参考【t-SNE可视化-代码】

import os
import torch as t
from torch import nn
from torch.utils.data import DataLoader as DL
from torch import optim
import torchvision.datasets as datasets
from torchvision import transforms as T
import torchvision.models as models
import numpy as np
import matplotlib.pyplot as plt
from sklearn.manifold import TSNEfrom Config.config import ConfigCLS
from Classification.Dataset.ChestXRayCLS.chestxray import ChestXRay
from Classification.Dataset.RefugeCLS.refuge import REFUGE
from Classification.TrainFunc.runner import NetRunnerModelPATH = 'resnet18/checkpoint/best_f1score.pth'
DatasetPath = 'datasets'class Identity(nn.Module):def __init__(self):super(Identity, self).__init__()def forward(self, x):return xdef plot_embedding(data, label, title):""":param data:数据集:param label:样本标签:param title:图像标题:return:图像"""x_min, x_max = np.min(data, 0), np.max(data, 0)data = (data - x_min) / (x_max - x_min)		# 对数据进行归一化处理fig = plt.figure()		# 创建图形实例ax = plt.subplot(111)		# 创建子图# 遍历所有样本for i in range(data.shape[0]):# 在图中为每个数据点画出标签if label[i] == 0:# colorplt = plt.cm.Set1(0.82)colorplt = 'brown'print(1)elif label[i] == 1:# colorplt = plt.cm.Set1(1.64)colorplt = 'red'print(2)elif label[i] == 2:# colorplt = plt.cm.Set1(2.46)colorplt = 'orangered'print(3)elif label[i] == 3:# colorplt = plt.cm.Set1(3.28)colorplt = 'orange'print(4)elif label[i] == 4:# colorplt = plt.cm.Set1(4.10)colorplt = 'chartreuse'print(5)elif label[i] == 5:# colorplt = plt.cm.Set1(4.92)colorplt = 'cyan'print(6)elif label[i] == 6:# colorplt = plt.cm.Set1(5.74)colorplt = 'lime'print(7)elif label[i] == 7:# colorplt = plt.cm.Set1(6.56)colorplt = 'dodgerblue'print(8)elif label[i] == 8:# colorplt = plt.cm.Set1(7.38)colorplt = 'blue'print(9)elif label[i] == 9:# colorplt = plt.cm.Set1(8.20)colorplt = 'm'print(10)elif label[i] == 10:# colorplt = plt.cm.Set1(9)colorplt = 'deeppink'print(11)plt.scatter(data[i, 0], data[i, 1], color=colorplt, marker='o', s=30)plt.xticks()		# 指定坐标的刻度plt.yticks()plt.title(title, fontsize=14)return figif __name__ == '__main__':img_transform_test = T.Compose([T.Resize((256, 256)),T.ToTensor(),T.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))])feature_list = []label_list = []test_set = datasets.ImageFolder(DatasetPath, transform=img_transform_test)test_loader = DL(test_set, batch_size=8, shuffle=True, num_workers=0)net = models.resnet18()net.fc = Identity()net = netnet.load_state_dict(t.load(ModelPATH), False)net.eval()num = 0for index, data in enumerate(test_loader):pic, label = dataprediction = net(pic)if num == 0:feature_list = prediction.clone().detach()label_list = label.clone().detach()else:feature_list = t.cat((feature_list, prediction.clone().detach()), dim=0)label_list = t.cat((label_list, label.clone().detach()), dim=0)num =+ 1ts = TSNE(perplexity=50, n_components=2, init='pca', random_state=0)result = ts.fit_transform(feature_list)fig = plot_embedding(result, label_list, 't-SNE Embedding of digits')plt.show()

结果图展示

在这里插入图片描述


http://chatgpt.dhexx.cn/article/NeSGGwGo.shtml

相关文章

CNNs: AlexNet补充

CNNs: AlexNet的补充 导言对AlexNet模型进行调整模型不同层的表征其他探索总结 导言 上上篇和上一篇我们详细地讲述了AlexNet的网络结构和不同超参数对同一数据集的不同实验现象。 本节,我们就AlexNet的一些其他相关问题进行解剖,如修改AlexNet参数量调…

深度学习-浅谈CNNs

偶尔看到了这篇文章,感觉作者写的很容易理解,对于初步认识CNNs有很大的帮助,若想查看原文,请点击此处。 关于神经网络的学习方法,总结起来的要点有以下几点: BP算法 激励函数正则化与交叉验证等其他防止过…

【GSCNN】GSCNN:Gated Shape CNNs for Semantic Segmentation论文记录

目录 简单不看版: 摘要 一、介绍 二、相关工作 三、Gated Shape CNN 代码 四、实验 五.总结 论文:https://arxiv.org/abs/1907.05740 代码:GitHub - nv-tlabs/GSCNN: Gated-Shape CNN for Semantic Segmentation (ICCV 2…

CNNs和视觉Transformer:分析与比较

探索视觉Transformer和卷积神经网络(CNNs)在图像分类任务中的有效性。 图像分类是计算机视觉中的关键任务,在工业、医学影像和农业等各个领域得到广泛应用。卷积神经网络(CNNs)是该领域的一项重大突破,被广…

你应该知道的9篇深度学习论文(CNNs 理解)

当时看到英文的博客,本想翻译给感兴趣的同学们看看,没想到已经有人翻译,于是进行了转载,留给自己和更多的人学习,本文仅供参考。 英文博客:https://adeshpande3.github.io/adeshpande3.github.io/The-9-Dee…

【神经网络】CNN

CNN工作原理笔记 卷积神经网络定义卷积运算池化激活函数全连接反向传播算法其他应用延伸知识 首先放个学习视频链接: 大白话讲解卷积神经网络工作原理. 卷积神经网络定义 CNN其实就相当于黑箱,有输入有输出 输入:二维像素阵列 输出:判决结果…

CNN+RNN

CNN,RNN(recurrent, 下同)结合到一起可以建立一个更好的model 1. CRNN(先CNN,后RNN) References: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition 一般用于基…

CNNs: ZFNet之CNN的可视化网络介绍

CNNs: ZFNet之CNN的可视化网络介绍 导言Deconvnet1. Unpooling2. ReLU3. Transpose conv AlexNet网络修改AlexNet Deconv网络介绍特征可视化 导言 上一个内容,我们主要学习了AlexNet网络的实现、超参数对网络结果的影响以及网络中涉及到一些其他的知识点&#xff0…

吊炸天的CNNs,这是我见过最详尽的图解!(上)

导读:卷积神经网络(CNNs)在“自动驾驶”、“人脸识别”、“医疗影像诊断”等领域,都发挥着巨大的作用。这一无比强大的算法,唤起了很多人的好奇心。当阿尔法狗战胜了李世石和柯杰后,人们都在谈论“它”。但…

深度学习—CNN

CNN简介 卷积神经网络 – CNN 最擅长的就是图片的处理。它受到人类视觉神经系统的启发。 CNN 有2大特点: 能够有效的将大数据量的图片降维成小数据量能够有效的保留图片特征,符合图片处理的原则 目前 CNN 已经得到了广泛的应用,比如&…

吊炸天的CNNs,这是我见过最详尽的图解!(下)

【摘要】本文详细介绍了卷积神经网络的运行原理,特别是池化、全连接等过程。为了使大家更快、更轻松的入门,文章没有晦涩难懂的术语和公式,全部采用“图形”的方式来描述。文末的延展阅读部分,更加入了彩色图片卷积原理的手工演算…

CNNs:ZFNet之基于AlexNet特征可视化实验分析

CNNs:ZFNet之基于AlexNet特征可视化实验分析 导言基于AlexNet网络的实验分析实验一:不同卷积层特征提取分析实验二:不同卷积层提取特征收敛分析 ZFNet网络介绍基于ZFNet网络的实验分析实验三:针对AlexNet特征提取改善可视化实验四:特征不变性…

CNN详细学习

前馈神经网络 MLP:multi-layer percetron Feed Forward and Back error propagation解决异或划分问题 缺点: 容易过拟合容易陷入局部最优化梯度消失计算资源不充分,训练集小 DNN 深一点效果好,宽一点容易理解,发现…

CNNs 入门论文汇总

Introduction 本文主要总结了卷积神经网络在机器视觉领域的重要发展及其应用。我们将介绍几篇重要的公开发表的论文,讨论它们为何重要。前一半的论文(AlexNet到ResNet)将主要涉及整体系统架构的发展和演变,后一半论文将主要集中在…

论文阅读和分析:《DeepGCNs: Can GCNs Go as Deep as CNNs?》

下面所有博客是个人对EEG脑电的探索,项目代码是早期版本不完整,需要完整项目代码和资料请私聊。 数据集 1、脑电项目探索和实现(EEG) (上):研究数据集选取和介绍SEED 相关论文阅读分析: 1、EEG-SEED数据集作者的—基线论文阅读和…

Gated-SCNN: Gated Shape CNNs for Semantic Segmentation

目录 作者 一、Model of Gated-SCNN 二、 Gated Shape CNN 1.Regular Stream 2.Shape Stream 3. Gate Conv Layer 4.ASPP 5 总代码 三 损失函数 1.BoundaryBCELoss 2.DualTaskLoss 作者 一、Model of Gated-SCNN 文章使用了双流CNN来处理语义分割中的边界问题,分为R…

(整理)吊炸天的CNNs,这是我见过最详尽的图解!(下)

之前在CSDN上看到这篇文章,觉得通俗易懂,写的非常好。不过近来再次查看,发现文章的照片莫名其妙的没有了,没有图就根本看不懂了。找到了之前关注的微信公众号:AI传送门 。 在里面找到了这篇文章,决定再把这…

CNNs详尽图解

已经成为每一个初入人工智能——特别是图像识别领域的朋友,都渴望探究的秘密。 本文通过“算法可视化”的方法,将卷积神经网络的原理,呈献给大家。教程分为上、下两个部分,通篇长度不超过7000字,没有复杂的数学公式&a…

学习笔记:利用CNNs进行图像分类

1.神经网络图像(CNNs)分类简介 本文将重点关注卷积神经网络,也被称为CNNs或Convnets。CNNs是一种特殊类型的神经网络,特别适合于图像数据。自2012年以来,ImageNet竞赛(ImageNet)一直由CNN架构赢得。 在本文中&#x…

(整理)吊炸天的CNNs,这是我见过最详尽的图解!(上)

之前在CSDN上看到这篇文章,觉得通俗易懂,写的非常好。不过近来再次查看,发现文章的照片莫名其妙的没有了,没有图就根本看不懂了。找到了之前关注的微信公众号:AI传送门 。 在里面找到了这篇文章,决定再把这…