背景:当读取一个key value数据的时候,python的字典结构会形成内存使用扩10倍左右,无可容忍。此文解决这个问题python
数据:word2vec训练的结果,word对应400维的词向量。词表共1.6G左右3d
解决方案:利用python的class array进行解决。blog
步骤:一、将原始数据,转化成key,index和 二进制的value数据块文件,其中二进制的value数据块大小为750M索引
二、array加载后按照索引进行查询 效果:只占用了800M左右内存,大大缩小了内存的使用。查询采用:vec[i] += word2vec_array[index*word2vec_dim + i]内存
培治class