- 最近聚簇计算相似度,使用了下面两种方法。
- 一开始用的sklearn,因为没有gpu
- 后来有了gpu就换上了pytorch
- gpu是V100
- batch=500(说是batch,只是为了预防超出内存,做的限制。
- 跑的是个循环
- 速度大概是这样子的:
- torch的cosine:cpu 3s/it,gpu v100 1.8s/it
- sklear:cpu 50it/s
- 总之这个速度差就很离谱,有谁能做个解释吗?
from sklearn.metrics.pairwise import cosine_similarity
emb_sim = torch.cosine_similarity(torch.tensor([update_text['embed']],device=self.device), torch.tensor(cluster_embed,device=self.device))#返回尺寸[batch,]
和
emb_sim = cosine_similarity(np.array([update_text['embed']]), np.array(cluster_embed))#返回[1,batch]