我正在努力寻找每一对物品之间的相似性。项目在python字典中,我发现一次相似性占用对。密码是-
def allSimilarity(itemsDict, similarityMetric):
itemList = itemsDict.keys()
itemSimilarityDict = {}
for item1 in itemList:
itemSimilarityDict[item1] = {}
for item2 in itemList:
if(item1 == item2):
continue
itemSimilarityDict[item1][item2] = similarityMetric(itemsDict, item1, item2)
return itemSimilarityDict
问题是,外部循环对每个项目需要5秒时间。我有~30万个项目,所以整个计算需要18天。有什么方法可以提高速度吗?我可以使用诸如Theano、Tensorflow等软件包,并使用GPU来实现这一点吗?或者可以采取云并将过程并行化?
我不认为机器学习库在这里会特别有用,如果没有现成的操作或构建块来进行这种全对所有的相似性比较。在
我想你会有更好的运气,看看更通用的并行化解决方案:OpenMP、TBB、MapReduce、AVX、CUDA、MPI、map reduce等等
同样,C++中重写相同的代码肯定会加速事情的发展。在
相关问题 更多 >
编程相关推荐