Kmeans是一种简单易用的聚类算法,是少有的会出现在深度学习项目中的传统算法,比如人脸搜索项目、物体检测项目(yolov3中用到了Kmeans进行anchors聚类)等。
一般使用Kmeans会直接调sklearn,如果任务比较复杂,可以通过numpy进行自定义,这里介绍使用Pytorch实现的方式,经测试,通过Pytorch调用GPU之后,能够提高多特征聚类的速度。
import
cpu和gpu运行的结果对比如下:
可以看到,在特征数<3000的情况下,cpu运行速度更快,但是特征数量超过3000之后,gpu的优势越来越明显。
因为pytorch的矩阵运算接口基本是照着numpy写的,所以numpy的实现方式大概只需要将代码中的torch替换成numpy就可以了。