Пример #1
0
    def create_index_from_lmdb(self):
        # 遍历
        lmdb_file = self.lmdb_file
        if os.path.isdir(lmdb_file):
            evn = lmdb.open(lmdb_file)
            wfp = evn.begin()
            annoy = AnnoyIndex(self.f)
            for key, value in wfp.cursor():
                key = int(key)
                value = face_comm.str_to_embed(value)
                annoy.add_item(key,value)

            annoy.build(self.num_trees)
            annoy.save(self.annoy_index_path)
Пример #2
0
'''

import lmdb
import os
import face_comm
import pickle


class face_lmdb:
    def add_embed_to_lmdb(self, id, vector):
        self.db_file = os.path.abspath(face_comm.get_conf('lmdb', 'lmdb_path'))
        id = str(id)
        evn = lmdb.open(self.db_file)
        wfp = evn.begin(write=True)
        print(vector.dtype)
        wfp.put(key=id.encode(), value=vector.tostring())
        wfp.commit()
        evn.close()


if __name__ == '__main__':
    #插入数据
    embed = face_lmdb()
    embed.add_embed_to_lmdb(12, [1, 2, 0.888333, 0.12343430])

    #遍历
    evn = lmdb.open(embed.db_file)
    wfp = evn.begin()
    for key, value in wfp.cursor():
        print(key, face_comm.str_to_embed(value))