两个input-t-SNE实践(可视化两个图片数据集合的差异).pdfVIP

两个input-t-SNE实践(可视化两个图片数据集合的差异).pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
两个input_t-SNE实践 (可视化两个图⽚数据集合的差异) 由于毕业设计有部分⼯作需要 ⽐两个图像数据集合的差异,为了可视化差异,利⽤了⽬前降维⾸选的t-SNE。我花了点时间看了sklearn ⾥⾯关于这部分的⽂档,也查阅了相关博客,最终成功的将两种图⽚数据集作了⼀个可视化的 ⽐。我觉得这个⽅法很硬核⽽且还蛮有意思 的,利⽤python sklearn库也很容易实现,加上很多教程都是仅仅列出了⼀个⼿写数据集识别的例⼦,⽽我们学习该法的⽬的在于学习如 何将t-SNE利⽤到⾃⼰的特定任务中,本⽂就记录了关于该⽅法如何实现两个图⽚数据集的降维可视化并且与⼤家作⼀个分享。初学者,如 果讲述有误,恳请指正 !⽂末给出参考博客和官⽅⽂档 !! 任务陈述 :在Images ⽬录下有两种图⽚,各500张,前500张为第⼀类,后500张为第⼆类如下图,可以看到两类的风格不⼀样,需要想 办法将这两类降到2维或者3维聚类可视化。 两类图⽚数据集 在看下⾯内容之前,可以先看⼀下利⽤t-SEN⼿写数据集分类的例⼦, (⽂末也有实现)这也是各⼤博客最喜欢贴的例⼦,或者结合起来看。 直接上代码 确保python安装好了各个依赖库,特别是sklearn 第⼀部分是获取数据的代码 : ⽆论你是什么类型的数据 (图⽚,⾳频,⽂本等等),先将它先处理成np.array类型,确保data的形状为(数据条数,每条数据维度),label 的形状(数据条数,) ⽅便后⾯调⽤t-SNE⽅法 import os import numpy as np import cv2 from time import time import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from sklearn import datasets ⼿写数据集要⽤到 from sklearn.manifold import TSNE 该函数是关键,需要根据 ⾃⼰的数据加以修改,将图⽚存到⼀个np.array⾥⾯,并且制作标签 因为是两类数据,所以我分别⽤0,1来表⽰ def get_data(Input_ path) : Input_ path为你 ⾃⼰原始数据存储路径,我的路径就是上⾯的./ Images Image_ names=os.listdir(Input_ path) 获取 ⽬录下所有图⽚名称列表 data=np.zeros((len(Image_ names),40000)) 初始化⼀个np.array数组⽤于存数据 label=np.zeros((len(Image_ names),)) 初始化⼀个np.array数组⽤于存数据 label=np.zeros((len(Image_ names),)) 初始化⼀个np.array数组⽤于存数据 为前500个分配标签1,后500分配0 for k in range(500) : label[k]=1 读取并存储图⽚数据,原图为rgb三通道,⽽且⼤⼩不⼀,先灰度化,再resize成200x200固定⼤⼩ for i in range(len(Image_ names)) : image_ path=os.path.join(Input_ path,Image_ names[i]) img=cv2.imread(image_ path) img_gray=cv2.cvtColor(img,cv2.COLOR_ RGB2GRAY) img=cv2.resize(img_gray,(200,200)) img=img.reshape(1,40000) data[i]=img n_samples, n_features = data.shape return data, label, n_samples, n_features ‘’‘下⾯的两个函数, ⼀个定义了⼆维数据,⼀个定义了3维数据的可视化 不作详解,也⽆需再

文档评论(0)

stereo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档