cosine_similarity和torch.cosine_similarity速度差異(人間奇事)

葉落葉子發表於2020-12-16
  • 最近聚簇計算相似度,使用了下面兩種方法。
    • 一開始用的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]

相關文章