单独保存时比较矢量(查找最近的矢量)的有效方法是什么?

2024-03-28 13:16:10 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个11523维的浮动向量s,也就是说,它的形状是1x11523。(是的,没有那么紧凑。)

我还有108000个向量要比较。其中,我想得到最接近s的向量。(换句话说,我在11523d中有108000个质心,并且我希望有最接近s的质心。)

当然,108000x11523浮动矩阵太大,无法保存在一个文件中。所以每36个中心点都被保存。(例如,c0000.picklec0001.picklec0002.picklec2999,pickle,每一个都是36x11523矩阵)。你知道吗

我正在浏览每个文件:

best_so_far = 1e10           # or, infinity
for file in files:
    centeroids = load(file)  # eg, `c0001.pickle`
    dist = distance_measure(s, centeroids)
    if dist < best_so_far:
        # update best

这个过程现在很慢。有没有更好的办法?我应该加载几个文件到某个特定的内存使用和计算的措施?你知道吗


Tags: 文件sodist矩阵向量picklefilebest