找回密码
 立即注册
查看: 348|回复: 0

使用faiss实现kmeans聚类算法

[复制链接]
发表于 2022-4-14 14:18 | 显示全部楼层 |阅读模式
Ubuntu安装faiss:
  1. conda install faiss-cpu -c pytorch
  2. conda install faiss-gpu cudatooklkit=10.0-c pytorch
复制代码
实现kmeans其实主要就是两句代码
  1. import faiss
  2. import pickle
  3. import numpy as np
  4. import time
  5. #x是用numpy生成的一个200*100的矩阵
  6. x = np.random.random((200,100)).astype('float32')#d是要输入的向量维度,应该是二维的,也可以用x.shape[1]来代替,num是要聚类的数量
  7. kmeans = faiss.Kmeans(d, num, niter=niter, gpu=true)
  8. kmeans.train(x)#train就是训练过程了#D表示距离,I表示聚类之后的向量
  9. D, I = kmeans.index.search(x,1)
复制代码
例如,输入一个200100的向量,维度是100,经过聚类后,输出的I就是2001的向量
kmeans算法就是就是先找中心点,然后算中心点其余各点的距离,对各个点进行归类的过程,参考链接放在下边
faiss例子:
https://blog.csdn.net/u013066730/article/details/106118479
各参数含义:
https://www.aiuai.cn/aifarm1662.html
kmeans讲解:
https://www.bilibili.com/video/BV1AJ411x7sf?t=156

<div id="marketingBox" class="marketing-box"><div class="marketing-content">


超强干货来袭


云风专访:近40年码龄,通宵达旦的技术人生

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-6-1 04:25 , Processed in 0.517412 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表