近似近邻库

n2的Python项目详细描述


n2-近似^ {STR 1 } $n<强> eSimult^ {STR 1 } $n<强> 8bOO/p>

importnumpyasnpfromn2importHnswIndexN,dim=10240,20samples=np.arange(N*dim).reshape(N,dim)index=HnswIndex(dim)forsampleinsamples:index.add_data(sample)index.build(m=5,n_threads=4)print(index.search_by_id(0,10))# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

安装

要安装:

sudo pip install n2

有关详细信息,请参阅the installation以获取有关如何从源代码生成n2的说明。

介绍

N2是一个近似最近邻域算法库 C++(包括Python/GO绑定)。n2提供更快的搜索速度 在建模大型数据集时比其他实现更快。另外,氮气 支持多核CPU进行索引构建。

背景

有很大的近似最近邻域库,如 annoynmslib,但它们没有完全满足 处理Kakao的数据集。因此,我们决定建立一个图书馆 这提高了可用性,并在nmslib的基础上执行得更好。以及 最后,我们向世界释放氮气。

功能

  • 高效的实施。n2是一个轻量级的库,即使使用大型数据集也能运行得更快。
  • 支持多核CPU建立索引。
  • 默认情况下,支持用于处理大型索引文件的mmap功能 很有效率。
  • 支持python/go绑定。

性能

如果你想了解详细的基准解释。更多实验见the benchmark

索引构建时间

image0

搜索速度

image1

内存使用

image2

绑定

以下指南解释了如何将n2与基本示例和api一起使用。

参考文献

许可证

此软件是根据Apache 2 license授权的,引用如下。

版权所有2017 Kakao Corp.http://www.kakaocorp.com

根据apache许可证2.0版(以下简称“许可证”)授权;您可以 除非符合许可证,否则不要使用此项目。你可以 获取许可证副本 http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本